3

マスターズ、

次のようにいくつかのルートを定義しました。

routes.MapRoute(
            name: "Default1",
            url: "{a}",
            defaults: new { controller = "Home", action = "Index" }
        );

        routes.MapRoute(
            name: "Default2",
            url: "{a}/{b}",
            defaults: new { controller = "Home", action = "Index" }
        );

        routes.MapRoute(
            name: "Default3",
            url: "{a}/{b}/{c}",
            defaults: new { controller = "Home", action = "Index" }
        );

        routes.MapRoute(
            name: "Default4",
            url: "{a}/{b}/{c}/{d}",
            defaults: new { controller = "Home", action = "Index" }
        );

そしてHomeControllerでは、

public ActionResult Index(dynamic data)
{
       return View();
}

Indexメソッドの先頭にブレークポイントを設定しました。ここで、http://{MylocalIP:port}/a/b のような URL をヒットすると、ブレークポイントに固執します。しかし、a & b であるルート値を抽出できません。

どうすればこれを行うことができますか?助けてください。

前もって感謝します

4

3 に答える 3

1

これを機能させることができたとしても、別のパラメーターを処理するようにコントローラー アクションをケース化する必要があります。パラメータの数に応じて異なるアクションを作成し、そのような使用を完全に避けてください。常に値を持つとは限らないのプロパティを提供しようとしてModelいる場合は、モデルを作成し、動的に渡す代わりに をModelアクションに渡します。

于 2013-11-06T12:28:39.730 に答える
0

モデルバインダーは、動的アクション パラメーターをどう処理するかを認識していません。私が知っている最も近いものは、JSON.net の JObject です。

受け取った型を特定し、逆シリアル化し、適切なビューを返す必要があります。

于 2013-11-06T17:45:05.253 に答える