Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/274.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# asp.net mvc razor foreach循环向div添加id_C#_Asp.net Mvc_Loops_Razor_Foreach - Fatal编程技术网

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
。它现在起作用了。谢谢工作起来很有魅力!