提问人:Jonathan 提问时间:4/4/2012 更新时间:4/10/2012 访问量:205
如何告诉 MVC 3 中的无障碍验证使用不同的模型?
How do I tell unobstructive validation in MVC 3 to use a different model?
问:
我正在将应用程序从 MVC 1 升级到 MVC 3。我以前使用 xVal,我正在尝试使用新的 Unobstructive 验证。在我现有的代码中,我经常有以下内容。
<%=Html.ClientSideValidation<Applicant>() %>
然而,我传递给页面的模型是包含其他信息的 ViewModel。通过新的验证,它想要查看我传递给页面的模型,以便找到验证者。当我使用 HTML 帮助程序包含前缀时,我可以更改我的引用。如果我这样做,它会选择验证。但是,我想告诉页面使用我的实体模型与视图模型,这样我就不必更改所有现有控制器来查找此前缀。
这可能吗?
答:
0赞
Francesco Abbruzzese
4/7/2012
#1
您可以使用不同的模型来呈现字段并对其进行验证。当传递给视图的模型与要发布的操作方法使用的模型不同时,这很有用。要发布到的操作方法和“客户端验证”都应引用同一模型,以确保客户端和服务器端验证都正常工作。 我是 Mvc Controls Toolkit 项目的协调员。在那里,有一些工具可以动态创建 html 对象,您可以使用这些对象来呈现任意模型的字段,该模型不一定是页面 ViewModel。具体而言,可以使用 crossHelper 扩展方法。 但是,我不是 100% 确定这正是您所要求的。
0赞
Esteban
4/10/2012
#2
考虑到您不想执行大量编辑,您可以编写一个自定义 HTML 帮助程序来包含您谈论的前缀。
如果您向我提供更多信息,我可以帮您编写助手。但是,您必须更改实际的帮助程序调用。
评论