新しいModelBindingContextを作成し、MVC 2プレビュー2以上でModelTypeプロパティを設定しようとすると、このエラーが発生します。は例えば、MVCの古いバージョンのカスタムモデルバインダーのためのユニットテストでは、私は以下のようなコードを持っていた:私はMVC 2プレビュー2にアップデートすると、あなたが述べたよう
internal static T Bind<T>(string prefix, FormCollection collection, ModelStateDictionary modelState) where T:class
{
var mbc = new ModelBindingContext()
{
ModelName = prefix,
ModelState = modelState,
ModelType = typeof(T),
ValueProvider = collection.ToValueProvider()
};
IModelBinder binder = new MyModelBinder();
var cc = new ControllerContext();
return binder.BindModel(cc, mbc) as T;
}
、私は同じエラーを得ました。私はModelTypeの割り当てを除去し、ModelMetadataへの割り当てに置き換えている
internal static T Bind<T>(string prefix, FormCollection collection, ModelStateDictionary modelState) where T:class
{
var mbc = new ModelBindingContext()
{
ModelMetadata = ModelMetadataProviders.Current.GetMetadataForType(null, typeof(T)),
ModelName = prefix,
ModelState = modelState,
ValueProvider = collection.ToValueProvider()
};
IModelBinder binder = new MyModelBinder();
var cc = new ControllerContext();
return binder.BindModel(cc, mbc) as T;
}
注:この修正は、これにこのコードを変更することでした。 Visual Studioでは、実際にこのエラーが発生しているコード行を教えてください。
私は今これを試してみるつもりです、ありがとうございます - 私はあなたなしでここにいたでしょう。しかしこれはバグですか?私たちが間違っていることは何ですか?ただ、追加する – LiamB
、私は、DLL(ライン47 DataAnnotationsModelBinder.cs) "のvar innerContextは=新しいModelBindingContext(){ モデル= propertyDescriptor.GetValue(bindingContext.Model)、 のModelName = fullPropertyKey、 にModelState =でエラーを検出しましたbindingContext.ModelState、 ModelType = propertyDescriptor.PropertyType、 ValueProvider = bindingContext.ValueProvider }; ' – LiamB
あなたのコードはcompletleyの異なるオブジェクトを使用しているようですか? – LiamB