我的应用程序中有一个多页表单,因此,每个方法都将发布到下一个表单。除非您尝试访问用[HttpPost]
装饰的方法之一的URL,否则此方法效果很好。
有什么方法可以将这个特定控制器中的所有404请求路由到Index
方法?
最佳答案
我将其作为答案发布,因为我无法将其添加为评论
看看这个link,它可能对您有帮助
您可以在OnActionExecuting
中捕获错误的想法,然后可以在其中进行重定向
也如答案中的page所述,您可以处理Controller.OnException
public class BaseController: Controller
{
protected override void OnException(ExceptionContext filterContext)
{
// Bail if we can't do anything; app will crash.
if (filterContext == null)
return;
// since we're handling this, log to elmah
var ex = filterContext.Exception ?? new Exception("No further information exists.");
LogException(ex);
filterContext.ExceptionHandled = true;
var data = new ErrorPresentation
{
ErrorMessage = HttpUtility.HtmlEncode(ex.Message),
TheException = ex,
ShowMessage = !(filterContext.Exception == null),
ShowLink = false
};
filterContext.Result = View("Index", data); // to redirect to the index page
}
}
之后,您可以让所有控制器从
BaseController
继承