MonoRail BindObject() 在 ASP MVC3 中等效吗?
如果条件 X 为真,我需要在操作中将复杂类型与 DataAnnotations 进行后期绑定。我无法在方法参数中预先绑定所有内容,因为除非 X == true,否则其中一些参数将不存在,因此 Model.IsValid 将为 false(因为它尝试绑定不存在的参数),因为复杂类型的验证失败。
MonoRail 通过允许您手动绑定来解决这个问题 当需要时,这正是我所遇到的场景,所以我想知道 MVC3 中是否有类似的东西可用?
我无法重载该操作,因为它会因模糊调用而崩溃,我无法发布到不同的操作,因为表单都是动态内容,所以我看到唯一的选择是滚动我自己的验证/绑定机制,拉出数据注释以进行验证....嘘:(
I need to do late binding of a complex type with DataAnnotations within an Action if condition X is true. I cant bind everything up front in the method params as a couple of them will not exist unless X == true so Model.IsValid will be false (since it tried to bind non existant params) due to validation failing on the complex type.
MonoRail solved this by allowing you to manually bind when needed, this is the exact scenario i have so im wondering if theres something similar available in MVC3?
I cant overload the Action as it blows up with an ambiguous call, i cant post to a different action as the form is all dynamic content, so i see the only alternative is rolling my own validation / binding mechanism pulling out data annotations to validate with.... boooo :(
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我认为您需要的是 ControllerBase.TryUpdateModel< /a> 方法(它有很多重载)。
您可以像
BindObject
一样使用它:某些模型:
在控制器操作中:
I think what you need is the ControllerBase.TryUpdateModel method (it has a lots of overloads).
You can use it similarly like
BindObject
:Some model:
In the controller action: