2

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

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

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

这可能吗?

4

2 回答 2

0

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

于 2012-04-06T16:27:04.687 回答
0

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

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

于 2012-04-10T00:21:57.327 回答