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>

ASP.. NET MVC 5自定义错误页面不起作用

<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" }
);

最后,您必须创建自定义错误ViewAction:

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();
        }
    }