19
ジェネリックタイプのモデルバインダーを作成することはできますか?たとえば、タイプがある場合汎用タイプのASP.NET MVCモデルバインダー
public class MyType<T>
任意のタイプのMyTypeで動作するカスタムモデルバインダーを作成する方法はありますか?
おかげで、 ネイサン
ジェネリックタイプのモデルバインダーを作成することはできますか?たとえば、タイプがある場合汎用タイプのASP.NET MVCモデルバインダー
public class MyType<T>
任意のタイプのMyTypeで動作するカスタムモデルバインダーを作成する方法はありますか?
おかげで、 ネイサン
は、modelbinderを作成BindModelをオーバーライドし、種類を確認し、
public class MyModelBinder
: DefaultModelBinder {
public override object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext) {
if (HasGenericTypeBase(bindingContext.ModelType, typeof(MyType<>)) {
// do your thing
}
return base.BindModel(controllerContext, bindingContext);
}
}
Global.asaxの
のデフォルトにあなたのモデルバインダーを設定を行う必要がある何protected void Application_Start() {
// Model Binder for My Type
ModelBinders.Binders.DefaultBinder = new MyModelBinder();
}
一致する汎用ベースのチェック
この質問はまだGoogleの検索結果ではかなり高いので、MVC3で提供される優れたソリューションは、[モデルバインダープロバイダ](http://bradwilson.typepad.com/)を使用することです。 blog/2010/10/service-location-pt9-model-binders.html)。これにより、_particular_型をバインドするための特別なルールを追加しようとしている場合に、デフォルトのバインダを置き換える必要がなくなり、カスタムモデルのバインディングがはるかにスケーラブルになります。 –
私は、mvc 2アプリケーションですべてのタイプのカスタムモデルバインダーを設定する方法を見つけるのに苦労していました。そして、ここに解決策があります!どうもありがとう! – blazkovicz