在试图找到两天的答案后,我在写这个问题.
基本上这是发生了什么.
[required(ErrorMessage = "required Field")] [Url(ErrorMessage="Please enter a valid url")] [DisplayName("Website")] public string web { get; set; }
在这个观点,我有这个
@Html.EditorFor(model => model.web,new { AutoCompleteType = "Disabled",autocomplete = "off" })
现在的问题在于如何在客户端验证此字段的输入文本.该字段必须始终具有协议前缀,否则将变为无效.
非常感谢
解决方法
您可以使用
DataAnnotationsExtensions library执行此操作.它们具有UrlAttribute,您可以将其配置为仅在指定协议时验证.此属性还提供客户端验证.你可以在这里看到一个这样的例子:
http://dataannotationsextensions.org/Url/Create
您可以使用以下属性:
using System.ComponentModel.DataAnnotations; namespace DataAnnotationsExtensions.Core { public class UrlEntity { [Url] [required] public string Url { get; set; } [Url(UrlOptions.OptionalProtocol)] [required] public string UrlWithoutProtocolrequired { get; set; } [Url(UrlOptions.DisallowProtocol)] [required] public string UrlDisallowProtocol { get; set; } } }
为了您的目的,第一个选项就足够了.
该库的包(包含ASP.NET MVC支持)可以在NuGet上找到:
Install-Package DataAnnotationsExtensions.MVC3
注意:这也适用于ASP.NET MVC 4