ASP.NET MVC Html Helper: добавление проверки в enum ddl

Я новичок в ASP.NET MVC. И я очень извиняюсь за этот вопрос.

Какова моя цель: добавить проверку с помощью Html Helper ASP.NET MVC в enum ddl.

Модель

public enum SampleEnum { 
    Active = 1, Inactive = 2, Pending = 3
}
public class SampleClass { 
    [Required]
    public SampleEnum sampleEnum{get;set;}
}

Вид

<form action="url" method="post">
    @Html.EnumDropDownListFor(m => m.sampleEnum, "-- Select Sample Enum --", new { @class = "custom-select custom-select-sm" })
    @Html.ValidationMessageFor(m=> m.sampleEnum, "", new { @class = "text-danger" })
    <input type="submit" value="Submit" /> 
</form>

Как только я нажал «Отправить», он не подтверждает мою форму, а продолжает ее отправлять.
П.С. Насколько это возможно, я бы хотел использовать проверку модели вместо проверки jquery.

Спасибо,


person Josh    schedule 26.11.2019    source источник
comment
Используйте DropDownListFor вместо EnumDropDownListFor   -  person erdi yılmaz    schedule 26.11.2019


Ответы (1)


вы должны убедиться, что вы включили проверку и ненавязчивые библиотеки

jquery.validate.js

jquery.validate.unobtrusive.js

в вашем основном макете

введите здесь описание изображения

если у вас нет файлов, вы можете установить их из nuget

введите здесь описание изображения

Обновление: если вам нужно использовать только проверку на стороне сервера, вам нужно просто заменить аннотацию данных для обязательного поля с [Required] на [Range(1, int.MaxValue, ErrorMessage = "This is required")], потому что @Html.EnumDropDownListFor всегда будет отправлять 0, если пользователь не выбрал ни один из параметров раскрывающегося списка, и это значение будет считаться действительным. проверьте этот ответ

поданное оформление должно выглядеть следующим образом: введите здесь описание изображения

и рассмотрите возможность размещения действительного URL-адреса действия для формы введите здесь описание изображения

person Motasem Alsaqqa    schedule 26.11.2019
comment
Спасибо, но я бы хотел использовать вспомогательную проверку html ASP.NET MVC, а не проверку jquery. - person Josh; 26.11.2019