我昨天升级到 MVC 4,刚刚发现升级引入的一个错误。
我有一个用于生成 RSS 提要的 Razor View 。它有一些这样的标记(简化):
<item>
<title>@post.BlogPost.Title</title>
<link>@Url.BlogPost(post.BlogPost, isAbsolute: true)</link>
</item>
在 Razor 第二版中,有 special support为 HTML5 void elements .这种空元素是自闭合的,并且没有闭合标签。
不幸的是,
<link>
就是这样一种元素。这意味着上述 Razor 标记不再有效,并且在运行时失败。删除关闭
</link>
标记删除解析器错误,但意味着它不再是有效的 RSS。那么,有没有办法解决这个问题,还是 Razor 真的只适合生成 HTML5?
最佳答案
我会这样做:
<item>
<title>
@post.BlogPost.Title
</title>
@Html.Raw("<link>")
@Url.BlogPost(post.BlogPost, isAbsolute: true)
@Html.Raw("</link>")
</item>
生成的源代码如下:
<item>
<title>
Google
</title>
<link>
http://www.google.se
</link>
</item>
关于.net - 在 <link> 元素上使用 Razor 2 编写 RSS 失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12711507/