Здесь я пишу этот вопрос, пытаясь найти ответ на два дня.mvc4 url validation
в основном сюда что-то происходит.
У меня есть свойство в ViewModel следующим
[Required(ErrorMessage = "Required Field")]
[Url(ErrorMessage="Please enter a valid url")]
[DisplayName("Website")]
public string web { get; set; }
в представлении, у меня есть этот
@Html.EditorFor(model => model.web, new { AutoCompleteType = "Disabled", autocomplete = "off" })
теперь проблема заключается в том, как ввод текста для этого поля проверяется в сторона клиента. поле должно иметь префикс протокола все время, иначе оно становится недействительным.
Каков наилучший способ решить эту проблему?
Many Thanks
Привет, спасибо за ваш ответ. Я пытался использовать '[Url (UrlOptions.OptionalProtocol)]'. но для того, чтобы 'UrlOptions' был доступен, я должен добавить' using DataAnnotationsExtensions', тогда 'Url' становится неоднозначным. Чтобы исправить это, я использовал '[DataAnnotationsExtensions.Url (UrlOptions.OptionalProtocol)]', но он не проверяется в интерфейсе. – Amila
Хорошо, пока я не найду, что я делаю неправильно с DataAnnotationsExtensions, я собираюсь объединить ответы. Я захватил регулярное выражение для факультативного протокола из [link] (http://dataannotationsextensions.org/Url/Create) и использовал аннотацию данных регулярного выражения для проверки. теперь он отлично работает. Но я хотел бы использовать другие расширения аннотаций, которые представлены в DataAnnotationExtensions. так что нужно выяснить, что происходит – Amila
@Amila У меня была такая же проблема. Вместо этого я использовал эту регулярную экспрессию. Не все охватывают, но выполняют задание '[RegularExpression («^[(http (s)?): \\/\\/(www \\.)? A-zA-Z0-9 @:% ._ \\ + ~ # =] {2256} \\ [аз] {2,6} \\ Ь. ([- A-Za-Z0-9 @:.?% _ \\ + ~ # & // =] *) $ «)]' – Lsakurifaisu