Asp.net mvc 在抛出404之前,是否有避免302重定向的方法?
在MVC中,在状态码404上定义的customErrors路径,该路径按预期工作,但返回404之前的状态码302Asp.net mvc 在抛出404之前,是否有避免302重定向的方法?,asp.net-mvc,http-status-code-404,Asp.net Mvc,Http Status Code 404,在MVC中,在状态码404上定义的customErrors路径,该路径按预期工作,但返回404之前的状态码302 我们可以避免这种临时重定向吗?您要查找的是web.config的customErrors标记上的属性redirectMode=“ResponseWrite”。不幸的是,它只适用于aspx,而不适用于ASP.NET MVC 因此,为了在MVC中实现您想要的功能,您必须处理错误以编写您想要的响应 在Global.asax.cs中: protected void Application_E
我们可以避免这种临时重定向吗?您要查找的是web.config的customErrors标记上的属性redirectMode=“ResponseWrite”。不幸的是,它只适用于aspx,而不适用于ASP.NET MVC 因此,为了在MVC中实现您想要的功能,您必须处理错误以编写您想要的响应 在Global.asax.cs中:
protected void Application_Error(object sender, EventArgs e)
{
HttpException httpException = Server.GetLastError().GetBaseException() as HttpException;
if (httpException != null)
{
if (httpException.GetHttpCode() == 404)
{
RouteData routeData = new RouteData();
Response.Clear();
Server.ClearError();
routeData.Values.Add("controller", "Errors");
routeData.Values.Add("action", "Error404");
var requestContext = new RequestContext(new HttpContextWrapper(Context), routeData);
var controller = ControllerBuilder.Current.GetControllerFactory().CreateController(requestContext, "Errors");
controller.Execute(requestContext);
}
}
}
此代码将处理404错误,并在ErrorsController上调用操作Error404,而无需重定向