asp.net MVC3 での限られた (2 週間) の経験では、ほとんどのアクション メソッドで、ルート登録を追加する必要はありませんでした。しかし、アクション メソッドに入力パラメーターがある場合、www.mysite.com/myController/myAction/myParameter1/myParameter2/myParameter3 の形式の URL (? マークなし) を使用してメソッドにアクセスできないことに気付きました。ルートをマッピングします。それが本来あるべき姿ですか?
質問する
108 次
2 に答える
2
デフォルトでは、すでにルートが登録されています。
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);
id という名前の 1 つのパラメーターを受け入れるため、アクションは次のようになります。
public ActionResult MyAction(string id)
リクエストを「キャッチ」します:
www.mysite.com/MyController/MyAction/parameter_value
id
値「parameter_value」を取得します。
複数のパラメーターが必要な場合 (またはパラメーターが「id」以外の名前でなければならない場合)、新しいルートを登録する必要があります。
パラメータが 2 つある場合は、次のようにルートを登録します。
routes.MapRoute(
"Default",
"{controller}/{action}/{parameter1}/{parameter2}",
new { controller = "Home", action = "Index", parameter1 = UrlParameter.Optional, parameter2=UrlParameter.Optional }
);
あなたの行動は次のようになります:
public ActionResult MyAction(string parameter1, int? parameter2)
于 2012-08-06T00:31:47.267 に答える
1
はい、要件に応じてルートをカスタマイズしてルートを登録する必要がありglobal.asax
ます。次の方法でルートを登録する必要があります。
routes.MapRoute(
"routeName", // Route name
"{controller}/{action}/{myParameter}", // URL with parameters
new { controller = "Home", action = "Index", myParameter= "" } // Parameter defaults
);
したがって、上記のルートを使用すると、URLが上記の形式になるたびに、直後のパラメーターがパラメーター"action/"
として取得されます.....
URL に複数のパラメーターがある場合は、次のように登録できます。
routes.MapRoute(
"routeName", // Route name
"{controller}/{action}/{myParameter1}/{myParameter2}/{myParameter3}", // URL with parameters
new { controller = "Home", action = "Index", myParameter1= "", myParameter2= "", myParameter3= "" } // Parameter defaults
);
于 2012-08-06T00:33:18.327 に答える