ASP.NET MVC @html.editorfor действует как требуется, и я хочу, чтобы это не требовалось

#asp.net #asp.net-mvc #razor

Вопрос:

 <div class="box-cell box1">
<div class="wrap-input100 validate-input">
@Html.LabelFor(model => model.Bags_Per_Valve, htmlAttributes: new { @class = "label-input101" })
@Html.EditorFor(model => model.Bags_Per_Valve, new { htmlAttributes = new { @class = "form-control", @type = "number", @min = "1", @name = "Bags" } })
</div>
</div>
 

Ответ №1:

Поэтому, если ваше поле Bags_Per_valve не может быть обнулено, то по умолчанию оно будет равно нулю, если вы не укажете какое-либо значение, и оно завершится ошибкой из-за атрибута min, поскольку минимальное значение должно быть единицей

Позвольте мне дать вам демо-версию для этого. У меня есть модель человека с указанным возрастом, и возраст не равен нулю

 public class Person
    {
        [Key]
        public int id { get; set; }
        public int Age { get; set; }

    }
 

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

   @Html.EditorFor(model => model.Age, new { htmlAttributes = new { @class = "form-control",@type = "number", @min = "1", } })
 

Теперь в пользовательском интерфейсе мне скажут, что это поле обязательно

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

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

 public class Person
        {
            [Key]
            public int id { get; set; }
            public int? Age { get; set; }
    
        }
 

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

Комментарии:

1. Но атрибут @min означает, что минимальное значение, которое может иметь редактор, — это число 1.

2. Обновил свой ответ

3. Спасибо, но я уже решил эту проблему. Я изменил значение Nullable в свойстве базы данных на true, и это сработало. Вы не знаете, может ли это вызвать какие-либо проблемы?

4. Пожалуйста, отметьте это как ответ для дальнейшего использования.

5. Это не вызовет никаких проблем, если только это поле на самом деле не может быть обнулено. По моему мнению, это не требуется каждый раз, поэтому это не должно вызывать никаких проблем