C# asp.net mvc razor foreach循环向div添加id
我正在尝试将动态C# asp.net mvc razor foreach循环向div添加id,c#,asp.net-mvc,loops,razor,foreach,C#,Asp.net Mvc,Loops,Razor,Foreach,我正在尝试将动态id添加到div中,该循环位于与变量I的值串联的foreach循环中。它抛出语法错误。可能是什么问题。我们能否在不使用for循环的情况下实现此解决方案 @{int i=1;} @foreach (var or in Model.Names) { <div oid="@or.Id" mode="0" oids="@or.Id" id="tr"+i> @or.Name </div> i++; }
id
添加到div
中,该循环位于与变量I
的值串联的foreach
循环中。它抛出语法错误。可能是什么问题。我们能否在不使用for
循环的情况下实现此解决方案
@{int i=1;}
@foreach (var or in Model.Names)
{
<div oid="@or.Id" mode="0" oids="@or.Id" id="tr"+i>
@or.Name
</div>
i++;
}
@{int i=1;}
@foreach(var或在Model.Names中)
{
@或者,名字
i++;
}
您不能像这样附加:
id="tr"+i>
它必须是:
id="tr@i">
您需要
@
。。因为此时它无法在标记和Razor之间进行推断。您希望在代码的C#段中构造ID。一个选项是使用字符串格式进行整个构造:
<div oid="@or.Id" mode="0" oids="@or.Id" id="@string.Format("tr{0}",i)">
或id=“@(“tr”+i)”
或id=“tr@(i)”
请注意,您不能只执行
id=”tr@i“
因为Razor语法分析器忽略”text@text“因为它看起来像一个普通的电子邮件地址。在新的C#6中,你可以直接使用id=“@($”tr{i}”)”对于我自己,除了添加我的@i first do work,id=“@i+AnyText”
构建并检查后,我将获取
下一个id=“2+AnyText”
等等(我使用的是2013vs)
希望这对任何人都有帮助,祝你度过愉快的一天。经过一段时间的努力,我发现
id=“@(“tr”+I)”
为我做了这项工作仅供参考,你需要做这个“tr(I)”,因为Razor语法分析器忽略了”text@text"因为它看起来像一个普通的电子邮件地址。这会阻止我的Materialize models在单击触发器元素时显示。@naz786根据评论不可能看到您有什么问题-请提出新的单独问题,请随时链接到此问题,以解释您尝试了什么。请务必提供。感谢您的回复Alexei。结果,我犯了一个愚蠢的拼写错误。我写了model
而不是model
。它现在起作用了。谢谢工作起来很有魅力!