2016-12-07 10 views
1

私のアプリケーションにエラーページが見つからない場合、ルートが間違っている場合はエラールートを表示しています。Asp.Net Mvc Route - エラールート

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見る –