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 等。我希望用户始终重定向到主页,这是一个简单的修复吗?
使用 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
{
}