【发布时间】:2014-01-16 11:06:47
【问题描述】:
我目前有一个遗留 asp.net mvc 1 应用程序的问题,即在控制器上的 POST 操作中,响应中的内容类型标头丢失
Cache-Control:private
Date:Thu, 16 Jan 2014 10:43:52 GMT
Server:Microsoft-IIS/7.5
Set-Cookie:cartguid=; expires=Mon, 16-Dec-2013 10:43:53 GMT; path=/; HttpOnly
Transfer-Encoding:chunked
这通常不是问题,但我们现在在网络服务器前面放置了一个 Apache 反向代理 - 当下游应用程序没有定义内容类型时,mod_rewrite/mod_proxy 默认内容类型为 text/plain .
因此,虽然我们正在查看 Apache 端的配置选项(我们在反向代理后面还有其他应用程序,但我们注意在尝试解决此问题时不会破坏其他东西),我会想知道从应用程序/MVC 的角度来看有哪些选项。我这边的代码有以下签名
[AcceptVerbs(HttpVerbs.Post)]
[ValidateAntiForgeryToken]
public ActionResult ProcessForm(FormCollection form, Model model)
{
// code here
return View("~/Views/viewpage.aspx");
}
到目前为止,我试图做的是在 viewpage.aspx 的标题中添加这段代码
<% HttpContext.Current.Response.AppendHeader("Content-Type", "text/html"); %>
但它没有效果。还更新了代码,从仅返回视图到RedirectToAction,但在设置内容类型方面也没有任何区别
【问题讨论】:
-
我不认为 MVC1 到 MVC2 是一个大的飞跃(它是 MVC3 带来了很多变化)。如果 MVC2 中有修复,也许您可以尝试升级?我认为 MVC1 在很多方面确实存在问题。
标签: c# asp.net asp.net-mvc mod-rewrite