0

ユーザーが をクリックして のページを表示したときに、 ControllernamedHomeを削除したいと考えています。これを試しましたが、404エラーが発生します。urlAboutContactASP.NET MVC sample application

routes.MapRoute("Home", "{action}/{id}",
    new { controller = "Home" });

これを削除すると、すべてが完全に機能します。コントローラーがホームの場合にのみ、コントローラー名を削除したいことに
注意してください。他のコントローラーは同じままにする必要があります。さらに、コードをRoute.Config上記のファイルに保存しました

 routes.MapRoute("Home", "{action}/{id}",
     new { controller = "Home" });

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

必要な結果

abc.com/Home/Aboutabc.com/About
abc.com/Home/Contactと表示する必要がありますabc.com/Contact

4

2 に答える 2

1

global.asax で新しいルートをマップする必要があります (デフォルトのルートの前に追加します)。例:

routes.MapRoute("SpecificRouteforHomeController", "{action}/{id}", new {controller = "Home", action = "Index", id = UrlParameter.Optional});

// default route  any defalt you want
routes.MapRoute("Default", "{controller}/{action}/{id}", new {controller = "Account", action = "Login", id = UrlParameter.Optional} );
于 2013-09-05T04:35:08.597 に答える
-2
 routes.MapRoute(
 name: "Default",
 url: "{controller}/{action}/{id}",
 defaults: new { controller = "DefaultControllerName", action = "Index", id = UrlParameter.Optional }
    );

コントローラー名を指定すると、そのコントローラー名で機能します。デフォルトではない場合は、コントローラ名をDefaultControllerNameとします。

于 2013-09-05T04:33:06.123 に答える