1

渡されたオブジェクトが実際にアクションメソッドに入る/(渡される)前にアクションメソッドに変更する方法はありますか?..たとえば...デフォルトでは、Index()-action-methodを常にMyClass の引数を取ります。

したがって、ユーザーが mydomain.com/AController/ にアクセスした場合

トリガーされたアクションメソッドは

public ActionResult Index(MyClass arg)
{ 
    return View();
}

これを説明する方法がよくわかりません..しかし、うまくいけば、あなたがそれを理解することを願っています..私が実際にやりたいことは、UmbracoがMVCプロジェクトで行うのと同じことです..彼らは常にRenderModelオブジェクトを渡します. RenderModelではなく、独自のタイプが必要です..

前もって感謝します!

4

2 に答える 2

1

あなたの質問を理解しているので、アクションをデフォルトarg値で呼び出す必要があります(何も指定されていない場合)

MyClass を次のように考えます。

public class MyClass 
{
    public int Id { get; set; }
    public string Name { get; set; }
}

次のようにルートを定義できます。

        routes.MapRoute(
            name: "Default",
            url: "{controller}/{action}/{arg}",
            defaults: new { controller="Home",
                            action = "Index", 
                            arg = new MyClass() { Id = 1, Name = "test" } 
                      }
        );

ModelBinder別のオプションは、カスタム、または下位レベルではカスタムを持つことだと思いますValueProvider

于 2013-10-18T13:20:28.730 に答える