MVC DataAnnotations URL 验证
我正在使用 ASP.NET MVC3 并尝试使用 DataAnnotationsExtensions 验证 URL 字段。
这几乎就是我所需要的。但是,它强制用户在 URL 字符串的开头添加“http://”,如果没有,它将显示以下验证消息:
The URL field is not a valid fully-qualified http, https, or ftp URL.
在数据注释扩展 URL 演示页面 它显示了一个额外的验证器UrlWithoutProtocolRequired,但我在任何地方都找不到它。
如何使用此验证器,或者如何轻松验证没有“http://”部分的 URL?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
DataAnnotationsExtensions 的无协议选项在源代码中可用,但被视为 beta 或“vNext”,并且尚未作为 NuGet 包的一部分发布。因此,如果您下载源代码并进行编译,您将看到 [Url] 属性有一个重载 [Url(requireProtocol: false)]。您可以在最新的 UrlAttribute.cs 文件 (UrlArribute.cs) 中看到这一点。另外,如果您查看 DataAnnotationsExtensions wiki,您会看到此功能计划很快发布(我我正在考虑在接下来的一两周内发布正式的下一个版本)。
The protocol-less option for DataAnnotationsExtensions is available in the source code but is considered beta or "vNext" and hasn't been released as part of the NuGet package. So if you download the source and compile you'll see the [Url] attribute has an overload [Url(requireProtocol: false)]. You can see this in the latest UrlAttribute.cs file (UrlArribute.cs). Also if you look in the DataAnnotationsExtensions wiki you'll see this feature is scheduled to be released soon (I'm thinking in the next week or two for an official next release).
只是为了完成这个:
从 MVC3 开始,我们现在可以使用 [URL] 验证属性。
Just to complete this :
Since MVC3 now we can use [URL] validation attribute.
我找不到内置属性来匹配 URL 并接受协议作为可选。
因此,我使用了以下正则表达式验证器:
我从 这里,这是一个很好的。
I could not find a built in attribute to match a URL and accept the protocol as optional.
So instead, I used the following RegularExpression validator:
I copied the Regular expression from here, it is a good one.