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>
} (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc-3 – MVC:为此对象定义的无参数构造函数
- asp.net-mvc – 在MVC Web应用程序中的存储库中共享DbConte
- ASP.NET OutputCache和Cookies
- ASP.NET Webforms ASP.NET Ajax与ASP.NET MVC和Ajax框架自由
- 中国网通新版400电话 - 企业直线
- 使用离线功能构建ASP.Net Web应用程序
- 如何处理ASP.NET vNext中的调试/发布配置转换
- asp.net-mvc – ASP.NET MVC不提供默认文档
- asp.net-mvc – 将整数数组传递给webapi方法
- ASP.NET路由 – 自定义路由完全跳过Global.asax中的所有内容
- asp.net-mvc-4 – signalR:/ signalr/hubs不生成
- 如何在ASP.NET中使用log4net在日志文件中包含Ses
- asp.net-mvc – 我是否需要将_ValidationScripts
- asp.net – 在MVC5中使用java脚本代码 – 放在哪
- asp.net – 奇数编号单元格未添加到Pdf
- asp.net-core-mvc – 使用RedirectToAction传递T
- asp.net – 为什么默认情况下GET请求返回JSON不允
- asp.net-mvc-3 – HTML编码字符串 – ASP.NET We
- asp.net-mvc-3 – 如果没有定义,Razor RenderSec
- asp.net – RegisterForEventValidation只能在渲
