MVC DropdownListfor не помечен по мере необходимости, но все еще требуется
-
26-10-2019 - |
Вопрос
У меня есть DropdownListfor в файле CSHTML:
var kategorie_wlasna = new SelectList(
(from z in Model.Kategoria
where !formReadOnly || z.Id == Model.KategoriaWlasnaId
select z),
"Id",
"Nazwa");
...
@Html.DropDownListFor(
model => model.KategoriaWlasnaId,
kategorie_wlasna,
"----",
htmlClassDropDownListDef)
В моем просмотре у меня есть собственность без каких -либо аннотаций по мере необходимости:
public long KategoriaWlasnaId { get; set; }
Но поле все еще требуется. В браузере я получаю:
<select class="input-validation-error form_object1" data-val="true" data-val-number="The field KategoriaWlasnaId must be a number." data-val-required="The KategoriaWlasnaId field is required." id="KategoriaWlasnaId" name="KategoriaWlasnaId">
<option value="">-----</option>
<option value="1227">Wykroczenie</option>
<option value="1228">Przestępstwo</option>
</select>
Что мне не хватает?
Решение
Это нормально. Типы стоимости всегда требуются. Вы можете сделать свою собственность нулевой:
public long? KategoriaWlasnaId { get; set; }
Теперь это больше не потребуется, и если пользователь не выберет ни одного элемента в раскрывающемся спине, его значение будет null
. Анкет И если вы хотите сделать это необходимым и персонализировать сообщение, вы можете украсить его с помощью необходимого атрибута:
[Required]
public long? KategoriaWlasnaId { get; set; }
Другие советы
Вы можете изменить по умолчанию DataAnnotationsModelValidatorProvider
так что типы значений не потребуются путем добавления следующих строк в Global.asax.cs
В методе Application_Start:
ModelValidatorProviders.Providers.Clear();
ModelValidatorProviders.Providers.Add(new DataAnnotationsModelMetadataValidatorProvider());
DataAnnotationsModelValidatorProvider.AddImplicitRequiredAttributeForValueTypes = false;
Если DataType (используйте Long) не обязательна, то это также будет работать, просто сменив длинное на строку
public long kategoriawlasnaid {get; установлен; }
public String kategoriawlasnaid {get; установлен; }
это также
общественность долго? Kategoriawlasnaid {get; установлен; }
Также, если вы используете аннотации данных, вы также можете использовать нулевой атрибут