puede alguien decirme cómo puedo validar una URL como http://www.abc.comasp.net mvc dataannotation url validar
Respuesta
Si, por el título de la entrada, que desea utilizar DataAnnotations MVC para validar una cadena URL, puede escribir un validador personalizado:
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 tiene un buen tutorial que va más allá de esto y también incluye la adición de código para validar en el lado del cliente a través de jQuery: http://haacked.com/archive/2009/11/19/aspnetmvc2-custom-validation.aspx
uso regular de anotación de datos de expresión, y utilizar una expresión regular como:
http://www\.\w+\.(com|net|edu|org)
Dependiendo de lo necesitas validar; ¿Estás requiriendo http: o estás requiriendo www.? Así que eso podría cambiar la expresión regular, si es opcional, a:
(http://)?(www\.)?\w+\.(com|net|edu|org)
que el System.Uri haga el trabajo pesado para usted, en lugar de una 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));
}
}
Si está utilizando MVC3 RTM, puede usar el atributo de validación [URL].
+1 y muchas gracias por el enlace útil para el artículo agradable., :) – RajeshKdev
utilizo esta expresión regular para los internos o externos URLs en mi sitio.
((?:https?\:\/\/|\/.)(?:[-a-z0-9]+\.)*[-a-z0-9]+.*)
Aquí es adecuado código de validación atributo utilizado en el sistema de producción:
[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;
}
}
ahora (al menos formar ASP.NET MVC 5) se puede utilizar UrlAttribute y que incluye la validación del servidor y el cliente:
[Url]
public string WebSiteUrl { get; set; }
Respuesta correcta actual –
Hay un problema con localhost, porque no lo hace tener dominio de primer nivel – ASpirin
Uri.IsWellFormedUriString comprueba que el formato de URL sea correcto y no requiera el escape.
/// <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. contraseña DataAnnotation en ASP.NET MVC 3
- 2. ASP.NET MVC SEO URL
- 3. jQuery validar separador decimal y Asp.net MVC
- 4. validar una lista desplegable en asp.net mvc
- 5. ASP.NET MVC - ActionFilterAttribute para validar datos POST
- 6. SEO URL con ASP.NET MVC
- 7. ASP.NET MVC URL predeterminada Ver
- 8. URL actual en asp.net mvc
- 9. ASP.NET MVC ValidateInput (falso) deja de funcionar con xVal y [RegularExpression] DataAnnotation
- 10. ASP.NET MVC enrutamiento/SEO Friendly URL
- 11. Infinite URL Parameters para ASP.NET MVC Route
- 12. ASP.NET MVC Colón en la URL
- 13. ASP.NET MVC URL de imagen generadas dinámicamente
- 14. Generar URL completa ASP.NET MVC Razor Vistas
- 15. Rutas de URL de ASP.NET MVC
- 16. ASP.NET MVC: url routing vs querystring
- 17. Authorize login URL en asp.net MVC 3
- 18. URL de minúsculas en ASP.NET MVC
- 19. ASP.NET MVC ActionLink con LinkText = URL absoluta
- 20. NSRegularExpression para validar URL
- 21. Escribir un atributo CompareTo DataAnnotation
- 22. MVC DataAnnotations Validación de URL
- 23. URL para URL completa en asp.net mvc-3
- 24. Cómo validar dos propiedades con ASP.NET MVC 2
- 25. DataAnnotation con ResourceProvider personalizado
- 26. Las teclas de acceso en ASP.NET MVC
- 27. parámetros Validar URL en php
- 28. Asp.Net MVC FormsAuthenticationTicket
- 29. URL relativa dentro de $ ajax con asp.net mvc 3
- 30. RavenDb con ASP.NET MVC 3 - ¿Cómo generar URL con ID?
¿Qué quiere decir 'validar', validar para qué? Como una URL válida? ¿Como un sitio web real y accesible? Validar el color? – Lazarus
He definido el patrón http://www.abc.com – maztt