我刚刚下载了MVC 3.0 RC,我很高兴开始使用它,特别是Razor视图引擎。然而,由于在这里的泥浆类型的人中几个坚持,我们被卡住使用VB.NET而不是C#。
当我开始尝试时,我注意到了一些怪癖。如果您使用CSHTML创建Razor视图,则可以编写如下代码:
@foreach(string genreName in Model.Genres) { <li>@genreName</li> }
剃刀会自动检测到< li> text是一个HTML标签,将切换到“代码模式”。使用VB.NET VBHTML文件,这似乎不起作用。这使我把@:关键字放在每一行的前面,如下所示:
@For Each genreName As String In Model.Genres @:<li>@genreName</li> Next
如果我没有它,我得到一个运行时错误。另外,< text>< / text>标签似乎不起作用
有人知道这里发生了什么,还是有解决方法?
解决方法
我会说在Vb.net中需要的原因是vb允许xml元素inline而c#不。
Dim xmlMarkup = <someElement>Values</span>
因为这样,vb的自然解析器必须与c#的行为不同,所以你必须告诉解析器通过使用@转义回html。您可以使用@和@ :.