Lia*_*amB 11 validation asp.net-mvc
http://www.asp.net/learn/mvc/tutorial-39-cs.aspx
我们使用上面的指南在我们的ASP.NET MVC应用程序中实现一些验证.
我们收到以下错误This property setter is obsolete, because its value is derived from ModelMetadata.Model now.,该错误没有行号,只是在按下提交按钮创建新消息时会爆炸.
我们必须使用MetaData示例(请参阅上面指南的底部),因为对象是在DBML中生成的
有关导致错误的原因的任何建议?
Cra*_*ntz 28
在创建新的ModelBindingContext然后尝试在MVC 2预览2或更高版本中设置ModelType属性时,您将收到此错误.例如,在旧版MVC中的自定义模型绑定器的单元测试中,我有如下代码:
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;
}
Run Code Online (Sandbox Code Playgroud)
当我更新到MVC 2预览2时,我得到了与你描述的相同的错误.修复是将此代码更改为:
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;
}
Run Code Online (Sandbox Code Playgroud)
请注意,我已删除了ModelType的赋值,并将其替换为对ModelMetadata的赋值.Visual Studio应该告诉您哪行代码实际上是在抛出此错误.
| 归档时间: |
|
| 查看次数: |
3796 次 |
| 最近记录: |