很抱歉,如果问题不明确,但我需要“找不到文件”自定义页面,而不是“找不到页面”。如果你在url .html的末尾输入 - 它不会通过Routes。
我有捕获所有路线的路线:
routes.MapRoute(
name: "Default",
url: "{*url}",
defaults: new { controller = "Home", action = "Index", url = UrlParameter.Optional },
constraints: new { Domain = new DomainsConstraint() }
);
但是如何才能找到未找到文件的自定义页面?如果在和url我添加例如.html - 它将显示我找不到404文件
答案 0 :(得分:1)
只需在web.config文件中设置错误配置
<强>的Web.config 强>
<customErrors mode="On" defaultRedirect="~/Error">
<error redirect="~/Controller/Error" statusCode="404" />
</customErrors>
<强>控制器强>
public ActionResult Error(){
var result = new FilePathResult("~/404.html", "text/html");
return result;
}
答案 1 :(得分:0)
routes.MapRoute(
"404-PageNotFound",
"{*url}",
new { controller = "StaticContent", action = "PageNotFound" }
);
您可以创建自己的自定义错误页面:
<customErrors mode="On" defaultRedirect="~/Error">
<error redirect="~/StaticContent/PageNotFound" statusCode="404" />
</customErrors>
public class StaticContent : Controller
{
public ViewResult Index()
{
return View("Error");
}
public ViewResult PageNotFound()
{
Response.StatusCode = 404; //you may want to set this to 200
return View("PageNotFound");
}
}
答案 2 :(得分:0)
您可以从Global.asax文件进行管理。 您可以从这个答案from here
中获得完美的解决方案