Piszę to pytanie tutaj, próbując znaleźć odpowiedź na dwa dni.Sprawdzanie adresu URL mvc4
zasadniczo tutaj jest to, co się dzieje.
Mam właściwość w viewmodel następująco
[Required(ErrorMessage = "Required Field")]
[Url(ErrorMessage="Please enter a valid url")]
[DisplayName("Website")]
public string web { get; set; }
w widoku, mam ten
@Html.EditorFor(model => model.web, new { AutoCompleteType = "Disabled", autocomplete = "off" })
teraz problem leży w jaki sposób wprowadzania tekstu dla tego pola jest zatwierdzone w Strona klienta. pole musi zawsze mieć prefiks protokołu, w przeciwnym razie traci ważność.
jaki jest najlepszy sposób na naprawienie tego problemu?
Wielkie dzięki
Cześć, dziękuję za odpowiedź. Próbowałem użyć '[Url (UrlOptions.OptionalProtocol)]'. ale aby 'UrlOptions' był dostępny, muszę dodać' using DataAnnotationsExtensions', wtedy 'Url' staje się niejednoznaczny. aby to poprawić, użyłem '[DataAnnotationsExtensions.Url (UrlOptions.OptionalProtocol)]' ale nie sprawdza się w interfejsie użytkownika. – Amila
OK, dopóki nie znajdę tego, co robię źle w DataAnnotationsExtensions, zamierzam połączyć odpowiedzi. Wyjąłem wyrażenie regularne dla opcjonalnego protokołu z [link] (http://dataannotationsextensions.org/Url/Create) i użyłem adnotacji danych wyrażeń regularnych do sprawdzania poprawności. teraz działa dobrze. Ale chciałbym użyć innych rozszerzeń adnotacji, które są dostępne w DataAnnotationExtensions. więc muszę dowiedzieć się, co się dzieje – Amila
@Amila Miałem ten sam problem. Zamiast tego użyłem tej regularnej ekscesji. Nie wszystkie obejmują, ale wykonują zadanie "[RegularExpression ("^[(http: s)?): \\/\\/(www \\.)? A-zA-Z0-9 @:% ._ \\ + ~ # =] {2,256} \\. [Az] {2,6} \\ b ([- a-zA-Z0-9 @:% _ \\ +. ~ #? & = = * *) $ ")]' – Lsakurifaisu