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