2

のようなURLを介してパラメータを渡すことができることは知っていますが.com/MyPage/?controlID=5、次のようなものでどのようにそれを行うことができます.com/MyPage/5か?したがって、変数名や疑問符は必要ありません。

4

2 に答える 2

5

カスタムルートを定義するか、モデルバインディングを使用して目的の効果を取得します。あなたの場合、ルートは次のようになります。

routes.Add("someRoute",
    "{controller}/{action}/{controlId}",
    new { controller = "Home", action = "Index", controlId = UrlParameter.Optional }
    );

public ActionResult Index(int? controlId)
{
}

現在、このルートの唯一の「落とし穴」は、デフォルトルートも指定している場合、これら2つのルートが競合し、最初に定義したルートが優先されることです。何らかの形の差別化値がある場合(たとえば、controlIdが常に何らかのパターンに一致する場合)、いつでもHttpRouteConstraintをルートに追加して、新しいルートをデフォルトルートから差別化できます。

または、デフォルトルートを使用している場合は、アクションメソッドのパラメータの名前をにid変更し、クエリ文字列キーを「id」に変更することもできます。

public ActionResult Index(int? id)
{
   // Do Stuff
}
于 2012-10-31T17:12:48.650 に答える
2

MyPageControllerでメソッドを作成します。

public ActionResult Index (int id)
{
}

これはデフォルトルートで機能します

于 2012-10-31T17:10:55.037 に答える