この行動喚起でアクション メソッド名が提供されないのはなぜですか?
@Url.Action("Index","NewStore")
それはただ生み出す...
localhost/TemplateUI/en-CA/Atomic/Wassabi/Store
最後に /index を生成するために必要です....
この行動喚起でアクション メソッド名が提供されないのはなぜですか?
@Url.Action("Index","NewStore")
それはただ生み出す...
localhost/TemplateUI/en-CA/Atomic/Wassabi/Store
最後に /index を生成するために必要です....
これは、Url.Action
ヘルパーが Global.asax のルート登録を使用するためです。そして、あなたはIndex
アクション名として渡しているので、ルート登録で のデフォルト値を指定していると思いますaction="Index"
ので、省略しています。
たとえば、次のデフォルト ルートがあるとします。
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"Default",
"{controller}/{action}",
new { controller = "Home", action = "Index" }
);
}
controller = "Home"
との両方のaction = "Index"
制約が指定されているため、完全に同等の URL になり、コントローラーのアクションを呼び出します。/
/Home
Index
Home
したがって、いくつかのヘルパーを使用して URL を作成しようとすると、同じことが起こります。ルートが使用されます。
URL にアクション名が必要な場合はaction
、ルート定義で制約を削除したことを確認してください。