【发布时间】:2012-07-04 11:02:22
【问题描述】:
我已经从 mvc 3 迁移到 mvc 4 并且遇到了以下问题。
@using InvoiceDocflow.Controllers
@{
Response.ContentType = "text/xml";
}
<?xml version="1.1" encoding="UTF-8" ?>
<dc>
@foreach (var dcLink in (IEnumerable<DcLink>)ViewData["SupportedDcs"])
{
<link rel="@dcLink.RelUri.ToString()" href="@dcLink.DcUri.ToString()" />
}
</dc>
这是我的看法。我的布局只有一行
@RenderBody()
所以在 mvc 3 中 <?xml version="1.1" encoding="UTF-8" ?> 出现在第一行,但现在,它出现在第二行,第一行为空。
我可以让它像在 mvc 3 中一样呈现在第一行吗?
顺便说一句。
@using InvoiceDocflow.Controllers
@{
Response.ContentType = "text/xml";
}<?xml version="1.1" encoding="UTF-8" ?>
这可行,但这根本不是我想做的。
【问题讨论】:
-
我在 Mvc4 行为中看不到任何 bsd :它在页面中复制代码块之外的所有回车符,所以如果你不想要回车符,你必须放
-
我不需要代码块来隐式影响输出。这是错误的。在 MVC 3 中没问题。
-
重点是回车在代码块外所以在outpunt中报告。虽然 Vb 是面向行的,但 C# 不是。很明显,Mvc 4 对代码块的定义与 Mvc3 不同……但我认为不能说 Mvc 4 的定义“是错误的”……只是不同而已。
-
为什么不使用自定义操作结果来生成 XML?像在视图中那样手动创建 XML 而不是使用 XML 解析器是非常危险的。
标签: razor asp.net-mvc-4