может кто-нибудь сказать мне, как я могу проверить URL-адрес, как http://www.abc.comasp.net MVC DataAnnotation проверки URL
ответ
Если, по названию вашего поста, вы хотите использовать MVC DataAnnotations для проверки строки URL-адрес, вы можете написать собственный валидатор:
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;
}
}
Фил Хаак имеет хороший учебник, который выходит за рамки этого, а также включает в себя добавление кода для проверки на стороне клиента с помощью JQuery: http://haacked.com/archive/2009/11/19/aspnetmvc2-custom-validation.aspx
Используйте регулярное выражение аннотаций данных, а также использовать регулярные выражения, как:
http://www\.\w+\.(com|net|edu|org)
В зависимости от того, что вам нужно проверить; вам нужен http: или вам нужен www.? Так что может изменить регулярное выражение, если не обязательно, чтобы:
(http://)?(www\.)?\w+\.(com|net|edu|org)
Пусть System.Uri делать тяжелую работу за вас, вместо RegEx:
public class UrlAttribute : ValidationAttribute
{
public UrlAttribute()
{
}
public override bool IsValid(object value)
{
var text = value as string;
Uri uri;
return (!string.IsNullOrWhiteSpace(text) && Uri.TryCreate(text, UriKind.Absolute, out uri));
}
}
Если вы используете RTM MVC3, вы можете просто использовать атрибут проверки [URL].
+1 и большое спасибо за полезную ссылку на хорошую статью., :) – RajeshKdev
Я использую это регулярное выражение для внутреннего или внешнего URLS на моем сайте.
((?:https?\:\/\/|\/.)(?:[-a-z0-9]+\.)*[-a-z0-9]+.*)
Вот правильный код атрибут проверки используется в системе прод:
[AttributeUsage(AttributeTargets.Property, AllowMultiple = false)]
public class UriValidation : ValidationAttribute
{
public override bool IsValid(object value)
{
if (value == null || value.ToString() == string.Empty)
{
return true;
}
try
{
Uri result;
if (Uri.TryCreate(value.ToString(), UriKind.RelativeOrAbsolute, out result))
{
if (result.Scheme.StartsWith("http") || result.Scheme.StartsWith("https"))
{
return true;
}
}
}
catch
{
return false;
}
return false;
}
}
В настоящее время (по крайней мере сформировать ASP.NET MVC 5), вы можете использовать UrlAttribute и включает в себя проверку сервера и клиента:
[Url]
public string WebSiteUrl { get; set; }
Текущий правильный ответ –
Существует проблема с localhost, потому что это не иметь домен 1-го уровня – ASpirin
Uri.IsWellFormedUriString проверяет правильность формата URL и не требует экранирования.
/// <summary>
/// Ensures the property is a valid URL.
/// </summary>
[AttributeUsage(AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Parameter, AllowMultiple = false)]
public class ValidateUrlAttribute : ValidationAttribute
{
public ValidateUrlAttribute()
{
}
public override bool IsValid(object value)
{
// Do not validate missing URLs - people can use [Required] for that.
string text = (value as string) ?? "";
if (text == "")
return true;
return Uri.IsWellFormedUriString(text, UriKind.Absolute);
}
}
- 1. ASP.NET MVC: DataAnnotation выполнение проверки порядка
- 2. asp.net mvc DataAnnotation Validation
- 3. ASP.NET MVC Обязательный DataAnnotation
- 4. asp.net MVC DataAnnotation разнос вопрос
- 5. DataAnnotation атрибуты класса дружище странность - ASP.NET MVC
- 6. Пароль DataAnnotation в ASP.NET MVC 3
- 7. Сравните пароль, используя DataAnnotation в asp.net mvc
- 8. Телефон проверки с DataAnnotation
- 9. 2 разных стиля проверки DataAnnotation с css
- 10. ASP.NET MVC 2 EnableClientValidation: группа проверки
- 11. MVC Пользовательские DataAnnotation
- 12. Asp.net MVC 4 DataAnnotation Язык на хосте Locaweb
- 13. ASP.NET MVC: Вывод проверки
- 14. Атрибут DataAnnotation для проверки равенства
- 15. ASP.net MVC проблема проверки
- 16. Ошибка проверки MVC ASP.Net
- 17. MVC 5 DataAnnotation Атрибут заказа
- 18. MVC DataAnnotation Accept No Spaces
- 19. Как локализовать DataAnnotation в MVC?
- 20. ASP.NET MVC 2 Конфликт проверки подлинности на основе DataAnnotation с LINQ2SQL
- 21. ASP.NET MVC 4 Проверка даты с помощью DataAnnotation
- 22. ASP.NET MVC 3: программно добавить DataAnnotation (RequiredAttribute) для просмотра модели
- 23. Абсолютный Url returnUrl asp.net mvc
- 24. ASP.NET MVC URL расшифровывает
- 25. ASP.Net MVC default url
- 26. asp.net mvc url routing
- 27. ASP.NET MVC Url Routing
- 28. Asp.net Mvc Redirect Url
- 29. Asp.net MVC маршрут URL
- 30. ASP.NET MVC 3.0 Url
Что вы подразумеваете под "validate", подтверждаете, для чего? Как действительный URL? Как настоящий, доступный веб-сайт? Подтвердить цвет? – Lazarus
Я определил шаблон http://www.abc.com – maztt