我的应用程序中有一个多页表单,因此,每个方法都将发布到下一个表单。除非您尝试访问用[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继承

09-06 00:29