asp.net MVC数据注释验证URL

问题描述:

有人可以告诉我如何验证 http://www.abc.com

can some one tell me how can i validate a url like http://www.abc.com

如果按照帖子的标题,您想使用MVC DataAnnotations来验证url字符串,则可以编写一个自定义验证器:

If, by the title of your post, you want to use MVC DataAnnotations to validate a url string, you can write a custom validator:

public class UrlAttribute : ValidationAttribute
{
    public UrlAttribute() { }

    public override bool IsValid(object value)
    {
        //may want more here for https, etc
        Regex regex = new Regex(@"(http://)?(www\.)?\w+\.(com|net|edu|org)");

        if (value == null) return false;

        if (!regex.IsMatch(value.ToString())) return false;

        return true;
    }
}

Phil Haack提供了一个不错的教程,它不仅限于此,还包括添加代码以通过jQuery在客户端进行验证: http://haacked.com/archive/2009/11/19/aspnetmvc2-custom-validation.aspx

Phil Haack has a good tutorial that goes beyond this and also includes adding code to validate on the client side via jQuery: http://haacked.com/archive/2009/11/19/aspnetmvc2-custom-validation.aspx