我的应用程序中有一个多页表单,因此,每个方法都会发布到下一个表单。除非您尝试访问使用[HttpPost]
修饰的方法的网址,否则此方法无效。
有没有办法可以将此特定控制器中的所有404请求路由到Index
方法?
答案 0 :(得分:1)
我会将此作为答案发布,因为我无法将其添加为评论
看一下这个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