加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc-4 – mvc4 url??验证

发布时间:2020-12-15 23:41:19 所属栏目:asp.Net 来源:网络整理
导读:在试图找到两天的答案后,我在写这个问题. 基本上这是发生了什么. 我在viewmodel中有一个属性如下 [Required(ErrorMessage = "Required Field")][Url(ErrorMessage="Please enter a valid url")][DisplayName("Website")]public string web { get; set; } 在
在试图找到两天的答案后,我在写这个问题.

基本上这是发生了什么.

我在viewmodel中有一个属性如下

[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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读