Asp.net-Mvc

VB.NET 中的 Razor 視圖引擎怪癖

  • November 12, 2010

我剛剛下載了 MVC 3.0 RC,我很高興開始使用它,尤其是 Razor 視圖引擎。但是,由於這裡有一些陷入泥潭的人,我們被困在使用 VB.NET 而不是 C#。

當我開始嘗試它時,我注意到了一些怪癖。如果您使用 CSHTML 創建 Razor 視圖,則可以編寫如下程式碼:

@foreach(string genreName in Model.Genres)
{
   <li>@genreName</li>
}

Razor 會自動檢測到<li>文本是 HTML 標籤,並會退出“程式碼模式”。對於 VB.NET VBHTML 文件,這似乎不起作用。這讓我把@:關鍵字放在每一行的前面,如下所示:

@For Each genreName As String In Model.Genres
   @:<li>@genreName</li>
Next

如果我沒有它,我會收到執行時錯誤。此外,<text></text>標籤似乎不起作用。

任何人都知道這裡發生了什麼或是否有解決方法?

我會說在 Vb.net 中需要它的原因是 vb 允許內聯 xml 元素,而 c# 不允許。

Dim xmlMarkup = <someElement>Values</span>

因此,vb 的自然解析器的行為必須與 c# 不同,因此您必須告訴解析器使用@. 您可以使用@@:

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