4

{controller}/{action}/{id}のような複数のパラメータを持つことは可能 です{controller}/{action}/{id}/{another id}か?

私はMVCが初めてです(プレーンなWebページから来ました)。不可能な場合、MVCUrlDataは Web ページで使用できるようなヘルパー メソッドを提供しますか?

4

2 に答える 2

4

はい、ルートに複数のパラメーターを定義できます。まず、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

ルーティングについては、こちらで詳しく説明しています

于 2012-04-12T02:18:37.447 に答える
4

次のように、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)
{
    // ...
}
于 2012-04-12T02:12:12.060 に答える