我刚刚下载了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/