【发布时间】:2014-06-10 15:36:02
【问题描述】:
我想在用户首次加载网站时进行简单的重定向。
为此,我只访问 BaseController 的 BeginExecuteCore() 方法上的 RouteData,如果 URL 没有特定值,那么我将重定向到另一个 https route:
public class BaseController : Controller
{
protected override IAsyncResult BeginExecuteCore(AsyncCallback callback, object state)
{
// access route data
if (condition == true)
Response.Redirect(string.Format("https://{0}/en/en", Request.Url.Authority), true);
}
}
}
一些事实:
- 我达到了我想要的结果
- 我收到异常“服务器无法在发送 HTTP 标头后附加标头。”
- 我尝试了几种替代方法:使用其他方法进行重定向,例如
Initialize(RequestContext requestContext)等 - 我尝试在重定向方法中使用参数
EndResponse=true - 我尝试在进行重定向之前清除标题
- 在之前的所有实验中,我都遇到了同样的异常
- 我正在使用
MVC 5
我的问题是: 如果知道我需要访问 RouteData 并且不会抛出烦人的异常,如何以最有效的方式将用户重定向到另一条路由?
谢谢!
【问题讨论】:
标签: asp.net-mvc https http-headers