Asp.net mvc 3 ASP MVC3中的MonoRail BindObject()等效项?
如果条件X为真,我需要在操作中使用DataAnnotation对复杂类型进行后期绑定。我无法预先绑定方法参数中的所有内容,因为除非X==true,否则其中的两个参数将不存在,因此Model.IsValid将为false(因为它试图绑定不存在的参数),因为复杂类型的验证失败 MonoRail解决了这个问题,它允许您在需要时使用它,这正是我所拥有的场景,所以我想知道MVC3中是否有类似的功能Asp.net mvc 3 ASP MVC3中的MonoRail BindObject()等效项?,asp.net-mvc-3,model-binding,Asp.net Mvc 3,Model Binding,如果条件X为真,我需要在操作中使用DataAnnotation对复杂类型进行后期绑定。我无法预先绑定方法参数中的所有内容,因为除非X==true,否则其中的两个参数将不存在,因此Model.IsValid将为false(因为它试图绑定不存在的参数),因为复杂类型的验证失败 MonoRail解决了这个问题,它允许您在需要时使用它,这正是我所拥有的场景,所以我想知道MVC3中是否有类似的功能 我不能让动作过载,因为它会被一个模棱两可的调用破坏,我不能发布到另一个动作,因为表单都是动态内容,所以我认为
我不能让动作过载,因为它会被一个模棱两可的调用破坏,我不能发布到另一个动作,因为表单都是动态内容,所以我认为唯一的替代方法是滚动我自己的验证/绑定机制,拉出数据注释以进行验证。。。。boooo:(我想你需要的是方法(它有很多重载)。 您可以像
BindObject
一样使用它:
一些型号:
public class MyModel
{
[Required]
public string Name { get; set; }
public string Description { get; set; }
}
在控制器操作中:
[HttpPost]
public ActionResult UpdateModel(bool? acceptedConditions)
{
var model = new MyModel();
if (acceptedConditions ?? false)
{
if (TryUpdateModel(model))
{
//Do something when the model is valid
}
else
{
//Do something else when the model is invalid
}
}
return View();
}