{controller}/{action}/{id}
のような複数のパラメータを持つことは可能
です{controller}/{action}/{id}/{another id}
か?
私はMVCが初めてです(プレーンなWebページから来ました)。不可能な場合、MVCUrlData
は Web ページで使用できるようなヘルパー メソッドを提供しますか?
{controller}/{action}/{id}
のような複数のパラメータを持つことは可能
です{controller}/{action}/{id}/{another id}
か?
私はMVCが初めてです(プレーンなWebページから来ました)。不可能な場合、MVCUrlData
は Web ページで使用できるようなヘルパー メソッドを提供しますか?
はい、ルートに複数のパラメーターを定義できます。まず、Global.asax ファイルでルートを定義する必要があります。パラメータは、URL セグメントまたは URL セグメントの一部で定義できます。あなたの例を使用するには、ルートを次のように定義できます
{controller}/{action}/{id1}/{id2}
次に、MVC インフラストラクチャは一致するルートを解析して id1 および id2 セグメントを抽出し、アクション メソッドの対応する変数に割り当てます。
public class MyController : Controller
{
public ActionResult Index(string id1, string id2)
{
//..
}
}
または、クエリ文字列またはフォーム変数から入力パラメーターを受け入れることもできます。例えば:
MyController/Index/5?id2=10
ルーティングについては、こちらで詳しく説明しています
次のように、global.asax で新しいルートをマップするだけです。
routes.MapRoute(
"NewRoute", // Route name
"{controller}/{action}/{id}/{another_id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional, another_id = UrlParameter.Optional } // Parameter defaults
);
次に、コントローラーのアクションで、次のようにパラメーターを取得できます。
public ActionResult MyAction(string id, string another_id)
{
// ...
}