2016-12-07 157 views
1

我想路由錯誤頁面找不到我的應用程序,如果任何路線是錯誤的,然後顯示錯誤路線。Asp.Net Mvc路由 - 錯誤路由

下面

routes.MapRoute(
    name: "Default", 
    url: "{controller}/{action}/{id}", 
    defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional } 
); 
routes.MapRoute(
    "NotFound", 
    "{*.}", 
    new { controller = "Error", action = "PageNotFound" } 
); 

回答

0

我的默認路由在Web.config文件中添加此。

<system.webServer> 
<httpErrors errorMode="Custom" existingResponse="Replace"> 
    <remove statusCode="404" /> 
    <error statusCode="404" responseMode="ExecuteURL" path="/Error" /> 
    <remove statusCode="500" /> 
    <error statusCode="500" responseMode="ExecuteURL" path="/Error" /> 
</httpErrors> 
<modules> 
    <remove name="FormsAuthentication" /> 
</modules> 
1

點(。)會導致衝突。使用字母字符參數名稱,

routes.MapRoute(
    name: "Default", 
    url: "{controller}/{action}/{id}", 
    defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional } 
); 

//Catch-All InValid (NotFound) Routes 
routes.MapRoute(
    name: "NotFound", 
    url: "{*url}", 
    defaults: new { controller = "Error", action = "PageNotFound" } 
);  

這也將讓你得到的參數在動作以及

public class ErrorController : Controller { 
    public ActionResult PageNotFound(string url) { ... } 
} 

的情況下,你想要做什麼都與價值。即記錄,審計...等

+0

謝謝重播,但它不工作,當我運行應用程序,然後我希望每次打開我的默認路徑主頁,如果我打開其他路徑像用戶列表或編輯頁面,然後它會去Page404視圖 –