【问题标题】:C# Razor Syntax inside a string字符串中的 C# Razor 语法
【发布时间】:2012-01-08 09:50:56
【问题描述】:

这是我遇到问题的代码:

@{int i = 1;}
@foreach (var item in Model)
{
    @:<ul id="sortablei" class='droptrue'>
    i++;
}

如何在 id sortablei 中使用 i? 我试过:@i 或 @{i} 但在 i 之前似乎没有空格,它不起作用。 我在 Razor 语法参考中找不到我的问题的答案,所以我现在有点无能为力。

【问题讨论】:

    标签: c# asp.net razor


    【解决方案1】:

    括号:

    @:<ul id="sortable@(i)" class='droptrue'>
    

    这里的括号限定了剃刀表达式;在许多情况下它们不是必需的,但是在以下情况下它们是必需的:

    • 表达式(右侧)很重要(空格等),需要帮助来确定它的范围
    • 如果没有它,它看起来像一个电子邮件地址,即abc@def - 这有特殊处理,以避免破坏其中包含电子邮件地址的页面

    【讨论】:

    • 啊,这么简单,但参考文献中没有提到!非常感谢!
    【解决方案2】:

    类似这样的:

    @model System.Generic.Collections.List<MyNameSpace.Product>
    @{
        int i = 1;
        string sortablei = "abc",
               droptrue = "abc-cls";
    }
    
    <ul id="@sortablei" class="@droptrue">
        @foreach (var item in Model)
        {
           <li>@item.Qty x @item.Name</li>
           i++;
        }
    </ul>
    

    这是一个quick reference,供您参考。


    接缝好像我没弄对,

    正如马克所说,你需要做的就是用括号括起来变量

    sortable@(i)
    

    我希望参考资料有点用,因为您的特定问题可以在 Explicit Expression 示例中找到

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-06-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-28
      • 1970-01-01
      相关资源
      最近更新 更多