我有这个代码块:
@if (!String.IsNullOrEmpty(ViewBag.Error))
{
<h2>Please, choose a Start date.</h2>
}
else
{
if (Model.Count() > 0)
{
var lastArticolo = "";
<h2>
Rapporti Capoturno @Model.First().rapportoCT.DLinea
</h2>
<table>
@foreach (var rapporto in Model)
{
if (lastArticolo != rapporto.rapportoCT.DCodArt)
{
<tr>
<td class="td_title">
@rapporto.rapportoCT.DCodArt
</td>
</tr>
lastArticolo = rapporto.rapportoCT.DCodArt;
} using (Html.BeginForm("ControlloQualita", "Rapporti"))
{
<tr>
<td class="td_detail">
@Html.TextBox("PalletControllati", rapporto.PalletControllati, new { style = "width:50px" })
</td>
<td>
<input type="submit" value="Update" />
</td>
</tr>
}
}
</table>
}
else
{
@:No records found
}
}
我在第 6 行收到错误: else 块缺少结束字符
错误位于倒数行,在@:No records found }
.
也就是说,因为我使用了@:
语法,所以关闭}
被解释为字符串的一部分!
手动解决此问题的两个选项(当然,只有在您发现问题所在之后!):
- 将倒数行更改为使用 html 标记:
<span>No records found</span> }
; - 将收盘移动到
{
新的一行;
我是一个 mvc 新手,所以我可能会遗漏一些要点。我已经使用 ASP.NET 网络表单很长时间了,所以对我来说,这种 Razor 语法似乎非常混乱且容易出错,只是少了一点(主要归功于 MVC 模型-控制器-视图分离、MVC 模型绑定和 VS 智能感知...) 那个旧的 ASP 标签汤。
然而,这是一个非常简单的视图,尽管如此,我还是有很多令人头疼的缩进和微妙的语法错误……我无法想象当你必须以复杂的形式调试一些奇怪的行为时。
所以,最后,我的问题是:你如何使用这种剃刀语法管理视图的复杂性?复杂视图的复杂性是否会优雅地扩展?