0

リッチ クライアント アプリケーションに ASP.NET MVC モデル バインディングを採用したいと考えています。次のコントローラー アクションがあります。

public ActionResult CreateUser(User profile)

以前の HTML フォームでは、フォームの HTML 入力名が のプロパティの名前と一致する限りUser、モデル バインドは自動的に行われます。

モデル バインディングもルート データとquerystringfor 値を参照してエンティティにバインドすることは理解していますが、プロパティに一致するクエリ文字列値を入力すると、404.

これを機能させることはできませんActionResult。ユーザー クラスのプロパティと一致するパラメーターを使用してルートを構成する必要がありますか?

4

1 に答える 1

0

カスタム モデル バインダー (IModelBinder インターフェイス) はいつでも実装できます。次に、次のように使用できます。

public ActionResult CreateUser([ModelBinder(typeof(MyUserModelBinder))]User profile)

または、アプリケーションの起動時にグローバル モデル バインダーとして登録します。

ModelBinders.Binders[typeof(User)] = new MyUserModelBinder();

しかし、おそらく最初に、 DefaultModelBinderがどのように機能するかを確認する必要があります。
「profile.Name」、「profile.Gender」などの入力フィールドに名前を付ければ、うまくいくはずです。

于 2011-02-02T20:56:57.967 に答える