使客户端和服务器端验证规则相同



我有一个使用ASP的应用程序。. NET MVC和KnockoutJS用于MVVM部分。服务器通过JSON将数据绑定到服务器。客户端处理数据,然后进行标准的POST回调。

我现在必须处理一些业务逻辑,如:

  • 如果property2 == "FOOBAR"
  • property1必须优于10
  • property2必须是!= "

等等……(有很多条件我必须处理)

因此,为了使事情更简单,是否有可能避免服务器端代码(c#)和客户端代码(JS)之间的代码重复?我们的想法是在一个地方定义验证规则(可能使用数据注释),并使用这些规则来生成JS代码(用于客户端验证)或c#代码(用于服务器端验证)。

我认为内置的注释加上添加的jQuery验证将满足您的大多数业务需求。

例如,第二个可以使用[Required]

实现

对于那些需要一些额外的东西(像你提到的第一个场景),你可以看看Remote验证实现你自己的注释(但是当连接到jQuery验证来添加你的新注释时,这会变得有点棘手)。

最新更新