我正在使用ASP.NET MVC3并尝试使用DataAnnotationsExtensions验证 URL字段。
这几乎是我的需要。但是,它强制用户在URL字符串的开头添加“http://”,否则,它将显示以下验证消息:
The URL field is not a valid fully-qualified http, https, or ftp URL.
在数据注释扩展程序网址demo page中,它显示了一个额外的验证程序 UrlWithoutProtocolRequired ,但我无法在任何地方找到它。
如何使用此验证器,或者如何在没有“http://”部分的情况下轻松验证URL?
答案 0 :(得分:11)
DataAnnotationsExtensions的无协议选项在源代码中可用,但被视为beta或“vNext”,并且尚未作为NuGet包的一部分发布。因此,如果您下载源代码并进行编译,您将看到[Url]属性有一个重载[Url(requireProtocol:false)]。您可以在最新的UrlAttribute.cs文件(UrlArribute.cs)中看到这一点。此外,如果您查看DataAnnotationsExtensions wiki,您会看到此功能计划很快发布(我正在考虑在下一周或两周内发布官方下一版本)。
答案 1 :(得分:5)
只是为了完成这个:
由于MVC3现在我们可以使用[URL]验证属性。
[Required]
[Url]
public string Website { get; set; }
答案 2 :(得分:0)
我找不到匹配网址的内置属性,并接受协议为可选。
相反,我使用了以下RegularExpression验证器:
int arr[] = { -12, 11, -13, -5, 6, -7, 5, -3, -6 };
int n = sizeof(arr) / sizeof(arr[0]);
RearrangePosNeg(arr, n);
printArray(arr, n);
return 0;
我从here复制了正则表达式,这是一个很好的表达式。