asp.net-mvc - VB.NET中的Razor View Engine怪癖

标签 asp.net-mvc vb.net visual-studio-2010 razor

我刚刚下载了MVC 3.0 RC,很高兴开始使用它,尤其是Razor View 引擎。但是,由于这里有些泥泞的人,我们只能使用VB.NET而不是C#。

当我开始尝试时,我注意到了一些怪癖。如果使用CSHTML创建Razor View ,则可以编写如下代码:

@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#不同,因此您必须通过@告诉解析器转回html。您可以使用@@:

关于asp.net-mvc - VB.NET中的Razor View Engine怪癖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4169340/

相关文章:

javascript - 如何在 ASP.NET MVC3 中从部分 View 包含 JavaScript

asp.net-mvc - Entity Framework - 逆向工程代码优先 - 覆盖更改

wpf - OxyPlot 在 VB.net 中不刷新

c# - 我应该在 VS2010 的文件关联对话框的 ProgID 字段中输入什么?

c++ - 变量周围的 VS 报告堆栈已损坏

C#-错误 : Collection is read-only

javascript - Mvc 验证和加载器

vb.net - 在 VB.NET 中,为什么要使用 Select 而不是 If?

vb.net - 更改值后对数据网格列 "Object must be of type Double."进行排序时出现异常

sql - 从txt文件导入数据到SQL数据库