Sto scrivendo questa domanda qui dopo aver provato a trovare una risposta per due giorni.convalida url mvc4
fondamentalmente ecco cosa sta succedendo.
ho una proprietà nel ViewModel come segue
[Required(ErrorMessage = "Required Field")]
[Url(ErrorMessage="Please enter a valid url")]
[DisplayName("Website")]
public string web { get; set; }
nella vista, ho questa
@Html.EditorFor(model => model.web, new { AutoCompleteType = "Disabled", autocomplete = "off" })
ora il problema risiede nel modo in cui il testo di input per questo campo viene convalidato nel dalla parte del cliente. il campo deve avere sempre il prefisso del protocollo, altrimenti diventa non valido.
qual è il modo migliore per risolvere questo problema?
Molte grazie
Ciao, grazie per la tua risposta. Ho provato a usare '[Url (UrlOptions.OptionalProtocol)]'. ma affinché 'UrlOptions' sia disponibile, devo aggiungere' using DataAnnotationsExtensions', quindi 'Url' diventa ambiguo. per correggere ciò, ho usato '[DataAnnotationsExtensions.Url (UrlOptions.OptionalProtocol)]' ma non è valido nel front-end. – Amila
Ok, fino a quando non troverò che cosa sto sbagliando con DataAnnotationsExtensions, ho intenzione di combinare le risposte. Ho acquisito l'espressione regolare per il protocollo facoltativo da [collegamento] (http://dataannotationsextensions.org/Url/Create) e ho utilizzato l'annotazione dei dati delle espressioni regolari per la convalida. ora funziona bene. Ma mi piacerebbe utilizzare le altre estensioni di annotazione fornite in DataAnnotationExtensions. quindi devo capire cosa sta succedendo – Amila
@Amila ho avuto lo stesso problema. Ho usato invece questa espressione regolare. Non tutto ciò che comprende ma fa il lavoro '[RegularExpression ("^[(http (s)?): \\/\\/(www \\.)? A-zA-Z0-9 @:% ._ \\ + ~ # =] {2256} \\ [az] {2,6} \\ b. ([- a-zA-Z0-9 @:.?% _ \\ + ~ # & // =] *) $ ")]' – Lsakurifaisu