MVC5 DropdownlistFor Значение '-1' недопустимо для - PullRequest
0 голосов
/ 08 июня 2018

У меня странная ситуация.Я работаю с MVC5. У меня включена проверка на стороне клиента.

В моей форме есть выпадающий список с надписью "пожалуйста, выберите ..." в качестве первого элемента, значение этого пункта "пожалуйста, выберите ..."автоматически устанавливается на значение -1. ​​

Теперь, когда я нажимаю кнопку «Сохранить» в моей форме, не выбирая ни одного элемента в раскрывающемся списке, проверка на стороне клиента не произойдет.Форма будет отправлена, а затем Modelstate.Valid = false.Представление будет снова отображено с ошибкой проверки в раскрывающемся списке: «Значение« -1 »недопустимо для владельца».

1) Я не хочу, чтобы сообщение было «Значение» -1 'недействительно для владельца ".Так я могу как-то настроить это сообщение?2) Как я могу убедиться, что проверка на стороне клиента происходит и предотвращает обратную передачу

Когда я выбираю первый вариант «Пожалуйста, выберите…» в раскрывающемся списке и щелкаю где-то еще на экране, проверка на стороне клиента работает.Я вижу свое сообщение об ошибке, но я все еще могу нажать кнопку сохранения и отправить форму.

У кого-нибудь есть подсказка?Я не могу найти ничего подобного в Интернете

У меня есть Viewmodel со следующими свойствами:

[Required(ErrorMessage = "Owner is required.")]
// Any guid but not an empty guid. 
[RegularExpression(@"^(\{{0,1}([0-9a-fA-F]){8}-([0-9a-fA-F]){4}-([0-9a-fA-F]){4}-([0-9a-fA-F]){4}-([0-9a-fA-F]){12}\}{0,1})$", ErrorMessage = "Owner is required.")]
public Guid OwnerId { get; set; }

public SelectList Owners { get; set; }

В моей Razor у меня есть:

@Html.DropDownListFor(model => model.OwnerId, Model.Owners, "Select a value...", new { @class = "form-control" })
@Html.ValidationMessageFor(model => model.OwnerId)

1 Ответ

0 голосов
/ 08 июня 2018

Материал оформления скрипта корректировал выборки.Спасибо Стивену за указание на это направление

...