【发布时间】:2009-07-06 04:56:36
【问题描述】:
我正在尝试通过这个tutorial。本教程似乎完成了我一直在寻找的所有内容,但我在尝试理解它时遇到了麻烦。
可能是因为我对Xval、jquery.validate的了解不够。
第一 他似乎正在使用一个类型化的视图:RemoteValidation.Models.User。如果我想传递一些其他数据会发生什么,我将如何得到这个?我是否必须让另一个类存储用户模型和我想要的其他东西?
第二次
我对这篇文章感到很困惑,因为这应该类似于客户端和服务器端验证,但随后他添加了类似
的行“//添加可选的正则表达式验证器以最小化 ajax 请求”
所以对我来说,这提出了一个问题,我认为他们已经有了这个:
[RegularExpression(EmailRegEx, ErrorMessage = "Invalid e-mail address.")]”
那么他有这个
“例如,对于服务器和远程客户端的密码强度验证,您需要实现的只是:”
public class IsSafePasswordAttribute : RemotePropertyValidator
{
public IsSafePasswordAttribute()
{
//perform some simple password strength check with a regular expression
//on the client side first
ClientSideRegEx = “.{8,20}”;
}
protected override bool PropertyValid(object value)
{
//Insert more elaborate server-side / remote client side password checking
// logic and return result here…
}
那么,如果您阅读 cmets,似乎构造函数是针对客户端的,而这个 PropertyValid 是针对服务器端的?
这是正确的吗?如果我只想为客户端和服务器端做同样的事情会发生什么?
但是他有这个
protected override bool PropertyValid(object value)
{
return (string)value != “adrian@lobstersoft.com”;
}
这段代码就像在客户端一样运行。
我不明白
ClientSideRegEx = “.{8,20}”;
首先,这现在真的告诉我它仅适用于客户端,这意味着我必须为服务器端编写相同的代码?我认为这就是不写两次相同的代码的全部目的?
他们是否也没有像所需的范围那样具有这些“[]”之一吗?我认为这将是一个非常基本的,那么您需要自己制作什么?
我也不明白他是如何确定需要输入的。就像那里有我可以查看的文档。我知道这是一个正则表达式,但我想知道其他验证和东西。
[演示中的文件]
然后总的来说,我不知道我应该改变什么以及我可以留下什么。 如果我开始一个新项目并开始进行验证,我是否会包含这些文件?
DataAnnotationsModelBinder.cs 扩展方法.cs RemoteValidators.cs
当然还有 xval 文件。 我是否需要更改任何这些 .cs 文件?或者我可以按原样使用它们吗? 就像我只是开始继承“RemotePropertyValidator”并开始输入还是我必须做一些其他更改?
然后在旁注中,他们是否仍然制作 Xval 我在该网站上查看,它现在只有 0.8(并且仍然只有测试版),并且在几个月内没有更新。我发布了这个问题“如果它们仍在开发中”并且还没有回复。
这让我感到不安。
P.S 如果它可以做同样的事情(更容易),我愿意使用其他东西然后 xval。只要它与 jquery 和 asp.net mvc 挂钩。
【问题讨论】:
标签: jquery asp.net-mvc validation