qualcuno può dirmi come posso convalidare un url del tipo http://www.abc.comasp.net mvc dataannotation convalidare url
risposta
Se, dal titolo del tuo post, che si desidera utilizzare DataAnnotations MVC per convalidare una stringa URL, è possibile scrivere un validatore personalizzato:
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 ha un buon tutorial che va al di là di questo e comprende anche l'aggiunta di codice per convalidare sul lato client tramite jQuery: http://haacked.com/archive/2009/11/19/aspnetmvc2-custom-validation.aspx
Utilizzare un regolare dati di espressione di annotazione, e utilizzare una regex come:
http://www\.\w+\.(com|net|edu|org)
A seconda di cosa devi convalidare; stai richiedendo http: o stai richiedendo www.? In modo che potrebbe cambiare l'espressione regolare, se facoltativa, a:
(http://)?(www\.)?\w+\.(com|net|edu|org)
Lasciate che la System.Uri fare il lavoro pesante per voi, invece di un 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));
}
}
Se si utilizza MVC3 RTM, è possibile utilizzare solo l'attributo di convalida [URL].
+1 e Molte grazie per il collegamento Utile all'articolo piacevole., :) – RajeshKdev
Io uso questa espressione regolare per interno o URL esterni sul mio sito.
((?:https?\:\/\/|\/.)(?:[-a-z0-9]+\.)*[-a-z0-9]+.*)
Ecco corretto codice attributo di convalida utilizzato nel sistema prod:
[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;
}
}
Now (almeno formare ASP.NET MVC 5) è possibile utilizzare UrlAttribute e che comprende la convalida del server e client:
[Url]
public string WebSiteUrl { get; set; }
Corrente risposta corretta –
C'è un problema con localhost, perché non lo fa avere un dominio di primo livello – ASpirin
Uri.IsWellFormedUriString verifica che il formato dell'URL sia corretto e non richieda l'escaping.
/// <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 La validazione MaxLength non funziona
- 2. MVC DataAnnotation Accept No Spaces
- 3. convalidare una DropDownList in asp.net mvc
- 4. ASP.NET MVC: ActionLink vs url
- 5. URL SEO con ASP.NET MVC
- 6. ASP.NET MVC Visualizzazione URL predefinita
- 7. URL minuscoli in ASP.NET MVC
- 8. Asp.net MVC SEO Friendly URL
- 9. ASP.NET MVC: routing url vs querystring
- 10. Parametri URL infiniti per ASP.NET Percorso MVC
- 11. ASP.NET MVC Url Route support (dot)
- 12. ASP.NET MVC URL errato in chiamate Ajax
- 13. Ritorna URL corrente in asp.net mvc
- 14. ASP.NET MVC ActionLink con LinkText = URL assoluto
- 15. ASP.NET MVC routing/SEO friendly URL
- 16. ASP.NET MVC risolve gli URL in javascript
- 17. URL per URL completo in asp.net MVC-3
- 18. ASP.NET MVC L'instradamento degli URL non mi dà abbastanza URL
- 19. ASP.NET MVC - ActionFilterAttribute per convalidare i dati POST
- 20. Come convalidare due proprietà con ASP.NET MVC 2
- 21. ASP.NET MVC ValidateInput (false) smette di funzionare con xVal e [RegularExpression] DataAnnotation
- 22. Asp.Net MVC FormsAuthenticationTicket
- 23. MVC non convalidare stringa vuota
- 24. DataAnnotation con personalizzato ResourceProvider
- 25. È possibile localizzare un URL/routing in ASP.NET MVC?
- 26. Enumerazione degli URL di route RouteTable di ASP.NET MVC
- 27. Generazione di un URL azione in JavaScript per ASP.NET MVC
- 28. immagini ASP.NET MVC e altri URL contenuti statici
- 29. Come creare URL SEO-Friendly in ASP.Net-MVC
- 30. Url ASP.NET MVC. Valore nome itinerario e itinerario
Cosa intendi per "convalidare", convalidare per cosa? Come URL valido? Come un vero sito web accessibile? Convalidare il colore? – Lazarus
Ho definito lo schema http://www.abc.com – maztt