Asp.net

ASP.NET MVC Razor 不接受我的有效標記

  • October 10, 2019

我非常喜歡 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 突出顯示它辨識出這些是標籤而不是程式碼。

另外,為什麼這會使錯誤消失?導致執行時錯誤的東西沒有改變。也許有人可以為我填補空白。

引用自:https://stackoverflow.com/questions/10610344