.net - 在 <link> 元素上使用 Razor 2 编写 RSS 失败

标签 .net asp.net-mvc razor asp.net-mvc-4 razor-2

我昨天升级到 MVC 4,刚刚发现升级引入的一个错误。

我有一个用于生成 RSS 提要的 Razor View 。它有一些这样的标记(简化):

<item>
    <title>@post.BlogPost.Title</title> 
    <link>@Url.BlogPost(post.BlogPost, isAbsolute: true)</link>
</item>

在 Razor 第二版中,有 special supportHTML5 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/

相关文章:

c# - BouncyCaSTLe .NET 自定义 TlsClient for anon CipherSuite 在 Android 上工作,但不是 Windows

c# - -10 和 10 之间的值的正则表达式,最多 1 个小数位

.net - 将现有 ASP.NET MVC 应用程序与 Orchard CMS 集成

javascript - 检查至少一个复选框已选中 jquery Validate

c# - 如何在 mvc5 中将文化设置为全局

c# - 使用 LINQ 或 lambda 表达式获取该值的值和计数

.net - ListBox 、ScrollViewer 和 CanContentScroll

c# - 限制对 MVC 操作的访问

c# - 为什么 RedirectToRoute ("Default") 不重定向到根目录?

asp.net-mvc-4 - Mvc4 模型到 url 查询字符串