【发布时间】:2010-02-15 00:40:31
【问题描述】:
我正在尝试执行以下操作。
使用默认模型绑定器从查询字符串值绑定对象。
如果失败,我会尝试从 cookie 值绑定对象。
但是我在这个对象上使用了数据注释,我遇到了以下问题。
- 如果没有查询字符串参数,默认模型绑定器甚至不会在必填字段上注册任何验证错误。如果属性本身不在查询字符串集合中,它显然甚至不会触发这些验证器。我怎样才能改变这种行为?如果它们不在查询字符串中,我希望必填字段是错误的。
- 如果确实有模型验证错误,我想从 cookie 加载模型,然后重新验证对象。我不确定如何让模型绑定器验证我自己填充的对象。
这是我目前所拥有的。
public class MyCarBinder : DefaultModelBinder
{
public override object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext)
{
var myCar = base.BindModel(controllerContext, bindingContext);
if (!bindingContext.ModelState.IsValid)
{
myCar = MyCar.LoadFromCookie();
// Not sure what to do to revalidate
}
return myCar;
}
}
任何有关如何正确执行此操作的帮助将不胜感激。
【问题讨论】:
-
我看到我的问题的第 1 部分被新版本的 asp.net mvc 2 解决了。
-
主要对从cookie加载对象后如何手动进行模型验证感兴趣。
标签: asp.net-mvc data-annotations model-binding