客户端MVC框架(主干,淘汰等)和验证



我现在正在尝试不同的客户端MVC框架(主要是Backbone和Knockout)。我正在尝试想出一种方法来验证。我有仅返回数据的 MVC 4 Web API。所有视图引擎逻辑都在客户端。显然,我知道服务器端验证是必须的。我通过模型绑定通过数据注释和标准 ASP.NET MVC 验证来实现这一点。

但是,我最终也在客户端复制了所有验证逻辑。有没有办法返回数据,但附加了验证逻辑?

Blast-Dan 是部分正确的,这意味着除了键值对之外,您无法从客户端将额外的数据传递给服务器。

但是,您可以做的是将 DataAnnotation 传播到客户端,以便不需要重写某些验证代码。对于复杂的规则来说,这并非易事,但 Html.EditorFor 帮助程序将帮助您为带有附加验证属性的输入生成文本框,这些属性由 jquery 验证无缝选取并停止表单提交。我正在考虑[必需],[范围()]和[正则表达式()]数据注释仅举几例。

如果您只创建一个普通模型,然后使用向导在 Visual Studio 中添加控制器以创建 CRUD 操作的视图,则可以看到一个快速示例。您将看到在 Model 类中使用的数据注释最终如何呈现在输出 html 上。

如果你自己在没有HtmlHelper的情况下创建HTML(我认为你可能会这样做,因为有KNOCKOUT标签),你可能想从这个链接开始检查DataAnnotationsModelValidatorProvider和IClientValidatable接口。

如您所见,这仍然是未知的领域:/

不,

当向 serer 提供数据时,您需要使用 HTTP 协议,您将使用 Post 或 Get 方法。 这只能传递键值对。使用 MVC 数据绑定,您可以绑定这些键值对以创建复杂对象。

但是,无法将元数据或函数传输到 C# 以完成验证。所有验证逻辑都需要在服务器和客户端脚本语言上编写,以便提供正确的验证

最新更新