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

时间:2013-04-17 14:22:17

标签: asp.net-mvc knockout.js client-side-validation server-side-validation

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

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

  • 如果property2 ==“FOOBAR”
  • ,则property1必须优于10
  • property2必须是!=“”

Etc等......(我必须处理很多条件)

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

先谢谢!

1 个答案:

答案 0 :(得分:1)

我认为built in annotations与添加jQuery验证相结合可以满足您的大部分业务需求。

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

来实现

对于那些需要一些额外的东西(比如你提到的第一个场景),你可以看看Remote validation 实现你自己的注释(但这会得到一个在挂钩jQuery验证以添加新注释时有点棘手)。