【问题标题】:How do I tell unobstructive validation in MVC 3 to use a different model?如何告诉 MVC 3 中的无障碍验证使用不同的模型?
【发布时间】:2012-04-17 12:54:34
【问题描述】:

我正在将应用程序从 MVC 1 升级到 MVC 3。我之前使用的是 xVal,现在我正在尝试使用新的无障碍验证。在我现有的代码中,我经常有以下内容。

<%=Html.ClientSideValidation<Applicant>() %>

然而,我传递给页面的模型是一个包含附加信息的 ViewModel。通过新的验证,它想查看我传递给页面的模型以查找验证器。当我使用 HTML Helpers 包含前缀时,我可以更改我的引用。如果我这样做,它会进行验证。但是,我想告诉页面使用我的实体模型与我的视图模型,这样我就不必更改所有现有的控制器来查找此前缀。

这可能吗?

【问题讨论】:

    标签: asp.net-mvc-3 unobtrusive-javascript


    【解决方案1】:

    您可以使用不同的模型来呈现您的字段并对其进行验证。当传递给视图的模型与您要发布的操作方法使用的模型不同时,这很有用。要发布到的操作方法和“客户端验证”都应该引用相同的模型,以确保客户端和服务器端验证都有效。 我是 Mvc Controls Toolkit 项目的协调员。在那里,有一些工具可以动态创建 html 对象,您可以使用它们来呈现不一定是页面 ViewModel 的任意模型的字段。特别是您可以使用crossHelper extension method。 但是,我不能 100% 确定这正是您所要求的。

    【讨论】:

      【解决方案2】:

      考虑到您不想执行大量编辑,您可以编写一个自定义 HTML 帮助程序来包含您为您谈论的前缀。

      如果您提供更多信息,我可以帮助您编写帮助程序。但是您必须更改实际的助手调用。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-12-24
        • 1970-01-01
        • 1970-01-01
        • 2012-06-18
        • 1970-01-01
        • 1970-01-01
        • 2017-07-23
        • 2014-08-19
        相关资源
        最近更新 更多