C# Razor:在if语句之后不呈现foreach块的结尾
因此,我在.net Razor中有以下代码:C# Razor:在if语句之后不呈现foreach块的结尾,c#,.net,razor,razor-2,C#,.net,Razor,Razor 2,因此,我在.net Razor中有以下代码: <div id="menu_left" class="menu_item"> @foreach (var mainMenuItem in Model) { string link =""; string nameLower = @mainMenuItem.ItemName.ToLower();
<div id="menu_left" class="menu_item">
@foreach (var mainMenuItem in Model)
{
string link ="";
string nameLower = @mainMenuItem.ItemName.ToLower();
if (mainMenuItem.SubItem.Count() > 0)
{
link +="javascript:submenu('";
link += nameLower + "_dropdown";
link += "', 'dropdown_menu' );";
}
else
{
link = mainMenuItem.Link;
}
}
<a href="@link" class="menu_a">
<img src="@mainMenuItem.Image" class="menu_link" id="@mainMenuItem.ItemName.ToLower()" />
</a>
}
</div>
我尝试过将整个代码包在一个@{}代码块中,这样它就知道它是代码了,但是编译器似乎在错误的方括号中结束了该块,就像foreach循环末尾的方括号一样
我见过其他人在“if”语句中有html,但在这个块中没有html时,他们也会遇到同样的问题
如何使其余代码以代码形式呈现?从中删除@
@mainMenuItem.ItemName.ToLower();
在启动c#代码以及将其与html混合时,您只需要@symbol
例如,在这种情况下,您需要@symbol来呈现nameLower的值:
@foreach(模型中的var mainMenuItem)
{
字符串链接=”;
string nameLower=mainMenuItem.ItemName.ToLower();
一些html
@无名者
}
哦,糟了,就是这样!谢谢,我会尽快接受这个答案。
@mainMenuItem.ItemName.ToLower();
@foreach (var mainMenuItem in Model)
{
string link = "";
string nameLower = mainMenuItem.ItemName.ToLower();
<div>
some html
@nameLower
</div>
}