sys*_*221 0 razor asp.net-mvc-3
我正试图在使用Razor的if/else中嵌入foreach,但是我在Razor声称我错过了一个结束括号时遇到了一些问题.代码在下面,我注意到Visual Studio没有语法突出显示的"else",我猜这是问题所在:
@if (ViewBag.user.administrativeRole != null)
{
<select name="administrativeRole" id="administrativeRole" class="selectInput" disabled="disabled">
}
else // this else isn't syntax highlighted
{
<select name="administrativeRole" id="administrativeRole" class="selectInput">
@foreach (var role in ViewBag.roles)
{
if (ViewBag.user.administrativeRole != null && ViewBag.user.administrativeRole == role.superadmin)
{
<option value="@role.id" selected="selected">@role.name</option>
}
else
{
<option value="@role.id">@role.name</option>
}
}
}
</select>
Run Code Online (Sandbox Code Playgroud)
这会产生以下错误:
if块缺少结束"}"字符.确保此块中的所有"{"字符都有匹配的"}"字符,并且没有任何"}"字符被解释为标记.
Line 58: @if (ViewBag.user.administrativeRole != null)
Line 59: {
Line 60: <select name="administrativeRole" id="administrativeRole" class="selectInput" disabled="disabled">
Run Code Online (Sandbox Code Playgroud)
有什么想法吗?我猜我只是简单地说了一下语法,因为我是Razor的新手.
使用Html.DropDown处理Slaks,但如果您按照描述的方式使用代码,请尝试这样:
@{
if (ViewBag.user.administrativeRole != null)
{
@:<select name="administrativeRole" id="administrativeRole" class="selectInput" disabled="disabled">
}
else
{
@:<select name="administrativeRole" id="administrativeRole" class="selectInput">
foreach (var role in ViewBag.roles)
{
if (ViewBag.user.administrativeRole != null ViewBag.user.administrativeRole == role.superadmin)
{
@:<option value="@role.id" selected="selected">@role.name</option>
}
else
{
@:<option value="@role.id">@role.name</option>
}
}
}
}
</select>
Run Code Online (Sandbox Code Playgroud)
这样做是做一个代码块然后逃出你真正想要打印到你的标记的东西.
| 归档时间: |
|
| 查看次数: |
3750 次 |
| 最近记录: |