ASP.. NET MVC 5自定义错误页面不起作用
本文关键字:不起作用 错误 自定义 NET MVC ASP | 更新日期: 2023-09-27 17:53:02
我已经将我的webconfig设置为自定义错误页面。但这行不通。我创建了一个名为"hata"的控制器和动作。我可以看到这个页面"http://localhost/hata/bulunamadi",但当我试图打开不存在的页面,所以我的自定义错误页面不显示。(我看到iss默认的404页面)
<system.web>
<customErrors defaultRedirect="~/hata/bulunamadi" redirectMode="ResponseRewrite" mode="On">
<error statusCode="404" redirect="~/hata/bulunamadi"/>
</customErrors>
</system.web>
<customErrors mode="On" defaultRedirect="~/Error">
<error redirect="~/Error/NotFound" statusCode="404" />
</customErrors>
控制器包含以下内容:
public class ErrorController : Controller
{
public ViewResult Index()
{
return View("Error");
}
public ViewResult NotFound()
{
Response.StatusCode = 404; //you may want to set this to 200
return View("NotFound");
}
}
try this
网络。配置
<system.web>
<customErrors mode="On" defaultRedirect="Error">
<error statusCode="404" redirect="NotFound" />
</customErrors>
</system.web>
创建错误。cshtml and NotFound。cshtml在共享文件夹创建ErrorController
public ActionResult Error()
{
return View();
}
请按照下面的说明逐步操作:首先,你必须设置自定义页面错误的web配置。就像这样
<system.web>
<customErrors mode="On" defaultRedirect="~/Error/" redirectMode="ResponseRedirect">
<error statusCode="404" redirect="~/Error/Error404/" />
<error statusCode="500" redirect="~/Error/Error500/" />
<error statusCode="400" redirect="~/Error/Error400/" />
</customErrors>
</system.web>
那么你必须配置你的RouteConfig.cs
:
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
routes.MapRoute(
"404-PageNotFound",
"{*url}",
new { controller = "Error", action = "Error404" }
);
最后,您必须创建自定义错误View
和Action
:
public class ErrorController : Controller
{
// GET: Error
public ActionResult Index()
{
return View();
}
public ViewResult Error404()
{
return View();
}
public ViewResult Error500()
{
return View();
}
public ViewResult Error400()
{
return View();
}
public ActionResult General()
{
return View();
}
}