0

ASP.NET MVC 4 アプリがあります。何らかの理由で、ルーティングにはいつもうんざりします。現在、RouteConfig.cs ファイルには 3 つのルートがあります。

routes.MapRoute(
  "AddProductStep1",
  "{controller}/products/add",
  new { controller = "Core", action = "AddProduct" }
);

routes.MapRoute(
  "Products",
  "{controller}/products",
  new { controller = "Core", action = "Products" }
);

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

/core/products にアクセスすると、製品に関連付けられたビューが表示されます。/core/products/add にアクセスすると、同じビューが表示されます。コントローラにブレーク ポイントを設定すると、両方のケースで Products アクションが呼び出されていることに気付きました。そのため、これはルート構成の問題だと思います。残念ながら、何を間違って設定したのかわかりません。誰かが私を正しい方向に向けることができますか?

ありがとうございました!

4

2 に答える 2

0

定義した最初のルートは、おそらくこれになります

routes.MapRoute(
  "AddProductStep1",
  "{controller}/addProduct",
  new { controller = "Core", action = "AddProduct" }
);

mvcのURLはcontroller/action / param / param / etcです。最初のルートは、Core / Products/ addという名前のパラメーターを探しています。

于 2013-02-01T18:22:55.577 に答える
0

デフォルト ルートが設定されている場合:

routes.MapRoute(
    "Default", // Route name
    "{controller}/{action}/{id}", // URL with parameters
    new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);

アクセス/core/products/addすると、次の場所にリダイレクトされます。

コントローラー=コア
アクション = 製品
id = 追加

これにより、奇妙な動作が説明されます。

于 2013-02-01T18:23:34.863 に答える