私はこのコードブロックを持っています:
@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 }
ます。
つまり、@:
構文を使用したため、終了}
は文字列の一部として解釈されます!
これを手動で解決するための 2 つのオプション(もちろん、問題の場所を特定した後でのみ!):
- 最後の行を html タグを使用するように変更します:
<span>No records found</span> }
; - 締め
{
を新しい行に移動します。
私は mvc の初心者なので、いくつかのポイントを逃す可能性があります。私はかなり長い間 ASP.NET Web フォームを使用してきたため、この Razor 構文は非常に混乱しやすく、エラーが発生しやすいように見えますが、MVC モデル、コントローラー、ビューの分離、MVC モデル バインディング、および VS IntelliSense のおかげです。 ...) 古い ASP タグ スープ。
ただし、これは非常に単純なビューであり、それでもなお、非常に多くのインデントが頭痛の種であり、構文エラーを見つけるのが微妙でした...複雑な形式で奇妙な動作をデバッグする必要があるときは想像できません。
最後に、私の質問は次のとおりです。このかみそりの構文を使用して、ビューの複雑さをどのように管理しますか? 複雑なビューの複雑さは適切に拡大されますか?