Asp.net
ASP.NET MVC Razor 不接受我的有效標記
我非常喜歡 Razor 語法,但它肯定不夠完美。例如,我有以下標記塊。
@if (Model.FeaturedDestinations != null && Model.FeaturedDestinations.Count() > 0) { int column = 0; foreach (var d in Model.FeaturedDestinations) { column++; if (column > 4) { </div> @{ column = 1; } } if (column == 1) { @:<div class="row-fluid"> } <div class="span3"> @RenderDestination(d) </div> } </div> }所以,編輯器給了我波浪線,表明我在開始
<div>標籤之前有一個結束標籤。我可以忍受這一點。但是當我執行應用程序時,我實際上得到了以下執行時錯誤:遇到沒有匹配開始標籤的結束標籤“div”。您的開始/結束標籤是否正確平衡?
顯然,我不能忍受!那麼處理這個案子有什麼訣竅嗎?就我想要的標記而言,我知道我在做什麼。但 Razor 不這麼認為,它正在接管。
為什麼 MVC 會浪費循環檢查平衡標籤?
由於我不明白的原因,以下更正了該問題:
@if (Model.FeaturedDestinations != null && Model.FeaturedDestinations.Count() > 0) { int column = 0; foreach (var d in Model.FeaturedDestinations) { column++; if (column > 4) { @:</div> column = 1; } if (column == 1) { @:<div class="row-fluid"> } <div class="span3"> @RenderDestination(d) </div> } @:</div> }注意
@:前幾個標籤的添加。我不知道為什麼這些是必要的——Razor 突出顯示它辨識出這些是標籤而不是程式碼。另外,為什麼這會使錯誤消失?導致執行時錯誤的東西沒有改變。也許有人可以為我填補空白。