可変数のMVCルートをどのように処理しますか?
-
03-07-2019 - |
質問
ASP.NET MVCのこの興味深いビットに注意してください:
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
{* pathInfo}をルートにマッピングしたい。
次のようなもの:
routes.MapRoute(
"area/{*pathInfo}",
"{controller}/{action}/{id}",parameters
new { controller = "Area", action = "Index", id = ??? }
);
しかし、どのように変数" foo / bar / rab / oof"を渡すのですか? mydomain.com/area/foo/bar/rab/oofから?ビット全体を文字列またはコレクションとして渡すのは問題ありません。
ありがとう!
解決
どのMVCバージョンを使用していますか? MCV Betaで覚えているように、ルート名はMapRoute()の最初のパラメーターである必要があります。とにかく、パスをキャプチャするという目標を考えると、私は次のようにします:
routes.MapRoute("AreaRoute", "Area/{*values}", new {controller = "Area", action = "Index"} );
そしてエリアコントローラーで:
// "value" argument is the string after Area/, i.e. "foo/bar/rab/oof" in your example
public string Index(string values)
{
...
}
所属していません StackOverflow