2017-09-29 9 views
0

私は自分でアプリケーションを作っています。ルーティングに問題があります。asp.net mvc 5アクションの別の位置をルーティングする

asp.net MVC routeConfig.csのデフォルトは以下の通りです:

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

と私は本/ 1 /編集や本/ 1 /歴史のようなリダイレクトリンクをしたいです。私はリンクになった場合

私は以下のこのコード行が

routes.MapRoute(
    name: "Default2", 
    url: "{controller}/{id}/{action}", 
    defaults: new { controller = "Home", action = "Index" }, 
    constraint : new { id = @"\d+" } 
); 

を働いたが、この時点でされて編集する場合は、「本を追加/」、それは私が追加されたコードを意味してウェブサイトには、ブックリストのアクションに私をリダイレクト後は動作しませんでした。

どうすればいいですか?デフォルトの規則

あなたDefault2を作る無効にする

+0

としてMVC 5は、 'AttributeRouting'を導入しました。なぜあなたはそれを試してみませんか?物事をはるかに簡単にするでしょう。 を参照してくださいhttps://blogs.msdn.microsoft.com/webdev/2013/10/17/attribute-routing-in-asp-net-mvc-5/ –

+0

_redirectsを予約するとどういう意味ですか?書籍リストとは何ですか?そしてあなたは 'BookController'に' Add() 'というメソッドを持っていますか?あなたはまたこのコードを編集していると言っています_ - 私はあなたが 'Default2'ルートと' Default'ルートの前に追加したことを意味すると思いますか? –

+0

@StephenMuecke BookControllerというコントローラと、Add()、List()、Edit()、History()などのアクションがあります。私はデフォルトの前にDefault2ルートを追加しました – Hanik

答えて

0

削除デフォルトルートデフォルトルート

routes.MapRoute(
    name: "Default", 
    url: "{controller}/{id}/{action}", 
    defaults: new { controller = "Home", action = "Index" }, 
    constraint : new { id = @"\d+" } 
); 
+0

私は仕事はしませんでした。私が予約/リンクの追加に行くと、私はリストアクションをリダイレクトします。どうして ? – Hanik

関連する問題