ASP.NET MVC 4和Razor 2:View引擎不再支持xml?
我们有一个视图(.cshtml),它使用ASP.NET MVC 3为RSS提要呈现 XML,工作正常.现在我们已经使用Razor 2升级到ASP.NET MVC 4,它会产生编译错误,类似于下面的内容. Parser Error Description: An error occurred during the parsing of a resource required to service this request. Please review the following specific parse error details and modify your source file appropriately. Parser Error Message: Encountered end tag "item" with no matching start tag. Are your start/end tags properly balanced? 标签是适当平衡的. 有人有什么想法? 更新:我已将它隔离在@foreach(…){…}块中item元素内的link元素下. @foreach (var item in Model.Items) { <item> <title>@item.Title</title> <link>@item.Link</link> <description>@item.Description</description> <guid>@item.Guid</guid> @if (item.PublishedDateUtc.HasValue) { <pubDate>@item.PublishedDateUtc.Value.ToString("ddd,dd MMM yyyy HH:mm:ss") GMT</pubDate> } </item> } 我通过使用下面的@ Html.Raw来修复它. @foreach (var item in Model.Items) { <item> <title>@item.Title</title> @Html.Raw(string.Format("<link>{0}</link>",item.Link.ToHtmlEncoded())) <description>@item.Description</description> <guid>@item.Guid</guid> @if (item.PublishedDateUtc.HasValue) { <pubDate>@item.PublishedDateUtc.Value.ToString("ddd,dd MMM yyyy HH:mm:ss") GMT</pubDate> } </item> } 有谁有更好的建议?显然,我可以使用一个类来声明模型并直接从控制器返回XML,但我更感兴趣的是为什么会出现这种行为以及我能做些什么来更好地符合Razor语法. 解决方法当我第一眼看到这个时,我注意到你的链接标签有一个结束标签而不是自动关闭. Razor非常聪明,可以知道html并知道链接标记是如何关闭的.这是另一个可以打破以显示Razor如何读取html的例子..... <tbody> @if (alternating) { <tr class='alternating'> } else { <tr> } .... </tr> </tbody> 这将失败,因为它看到< / tr>没有开口标签. Razor将自动关闭的标签解释为自动关闭.所以你的链接标签实际上以>结束了. (因为它是有效的html,有一个没有/>的自闭标签)所以现在我们遇到一个没有开始标记的结束标记来证明它是合理的,所以解析器放弃并说它没有正确格式化.我必须做一些检查,但我很确定它假设关闭链接标记用于item标记,因为这将提供适当的平衡,这就是为什么文件的其余部分解析好直到它遇到这个单独的项目标记没有开口标签. 应该足够聪明地知道前一个结束标记不是正确的标记.与团队合作可能是一个问题. 我没有尝试过,但你应该能够做到这一点 @foreach (var item in Model.Items) { <item> <title>@item.Title</title> @:<link> @item.Link @:</link> <description>@item.Description</description> <guid>@item.Guid</guid> @if (item.PublishedDateUtc.HasValue) { <pubDate>@item.PublishedDateUtc.Value.ToString("ddd,dd MMM yyyy HH:mm:ss") GMT</pubDate> } </item> } (编辑:台州站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 我如何让Fiddler捕获我的MVC应用程序向我的ASP.NET Web API
- 在mvc4 asp.net中的Razor View中的模型声明
- ASP.net MVC ValidationSummary总是被渲染
- 将变量从ASP.net传递给JavaScript
- asp.net-mvc-routing – @ Url.Action获取?附加长度= 2
- ASP.NET中TextBox使用Ajax控件显示日期不全的问题解决方法
- asp.net-mvc – MVC DB首先修复显示名称
- asp.net-ajax – Ajax脚本管理器和母版页
- 使用ASP.NET Identity 2.0和MVC 5进行自定义单点登录
- 从app_data中删除文件夹时如何防止asp.net重新编译?
- 设置ASP.NET页面不被缓存(客户端/服务器端取消缓
- asp.net – $(“#dialog”).parent().appendTo($
- asp.net-mvc – 你如何指定在列表框中显示多少项
- 在ASP.NET中拒绝用户时,’CustomIdentity’上的S
- ASP.Net核心 – 获取帖子表格的所有数据
- asp.net – 单个应用程序中的多个母版页
- asp.net-mvc – 文件上传MVC
- asp.net-mvc – 如何在asp.net中使用mvc构建购物
- .NET 3.5 / VS 2008上的ASP.NET Web Services的自
- asp.net – CalendarExtender定位问题