asp.net MVC 4 - 将用户重定向到主页 C#

本文关键字:重定向 主页 用户 net MVC asp | 更新日期: 2023-09-27 17:56:27

我在MVC 4中有一个简单的控制器,像这样。对不起,伯特我是 .net 的大三学生,也许这是简单的修复?

public class HomeController : BaseController
    {
        public ActionResult Index()
        {
            ViewBag.h1 = Resources.Language.HomeH1;
            ViewBag.Title = Resources.Language.HomeTitle;
            ViewBag.Description = Resources.Language.HomeDescription;
            return View();
        }
        public ActionResult Dataroom()
        {
            ViewBag.h1 = Resources.Language.DataRoomH1;
            ViewBag.Title = Resources.Language.DataroomTitle;
            ViewBag.Description = Resources.Language.DataroomDescription;
            return View();
        }
        public ActionResult Consultancy()
        {
            ViewBag.h1 = Resources.Language.ConsultancyH1;
            ViewBag.Title = Resources.Language.ConsultancyTitle;
            ViewBag.Description = Resources.Language.ConsultancyDescription;
            return View();
        }

        public ActionResult Services()
        {
            ViewBag.h1 = Resources.Language.ServicesH1;
            ViewBag.Title = Resources.Language.ServicesTitle;
            ViewBag.Description = Resources.Language.ServicesDescription;
            return View();
        }
        public ActionResult Contact()
        {
            ViewBag.h1 = Resources.Language.ContactH1;
            ViewBag.Title = Resources.Language.ContactTitle;
            ViewBag.Description = Resources.Language.ContactDescription;
            return View();
        }

当链接正常时,它正在工作 oK,但如果有人输入像/simpleexample 等。我希望用户始终重定向到主页,这是一个简单的修复吗?

asp.net MVC 4 - 将用户重定向到主页 C#

使用 http 状态代码 404 的自定义错误页,并始终重定向到控制器操作。ASP.NET MVC 404 错误处理

在 web.config 中添加自定义错误页面 URL

<customErrors mode="On" defaultRedirect="~/Home/Index" />

将此添加到配置中:

<customErrors mode="On">
   <error statusCode="404" redirect="~/Home/Index"/>
</customErrors> 

或者其他方式:使用归因处理错误。创建属性:

public class HandleMyError : HandleErrorAttribute
    {
        public override void OnException( ExceptionContext filterContext )
        {
            if ( filterContext.ExceptionHandled ) { return ; }
            else
            {
                string actionName = filterContext.RouteData.Values["action"].ToString();
                Type controllerType = filterContext.Controller.GetType();
                var method = controllerType.GetMethod( actionName );
                var returnType = method.ReturnType;
                if ( returnType.Equals( typeof( ActionResult ) ) || ( returnType ).IsSubclassOf( typeof( ActionResult ) ) )
                {
                    filterContext.Result = new RedirectToRouteResult(new RouteValueDictionary { { "area", "" }, { "controller", "Home" }, { "action", "Index" } });
                }
            }
            filterContext.ExceptionHandled = true;
        }
    }

并添加[HandleMyError]属性您的Home控制器:

[HandleMyError]
public class HomeController : BaseController
{
}