字符串中的C#Razor语法

本文关键字:语法 C#Razor 字符串 | 更新日期: 2023-09-27 18:19:40

这是我遇到问题的代码:

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

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

字符串中的C#Razor语法

括号:

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

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

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

类似这样的东西:

@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>

以下是您的知识快速参考。


像我这样的海员做得不对,

正如马克所说,你所需要做的就是用这样的括号包围变量

sortable@(i)

我希望这个参考有点有用,因为您的特定问题可以在显式表达式示例

中找到