Удалить унаследованный обязательный атрибут в атрибутах данных на страницах бритвы

У меня есть модель с несколькими атрибутами, которые являются либо десятичными, либо двойными. Я не хочу, чтобы они требовались, но я не могу найти способ отключить наследование требуемого атрибута.

Вот фрагмент документации по проверке страниц бритвы:

Атрибуты Required и MinimumLength указывают, что свойство должно иметь значение. Однако ничто не мешает пользователю ввести пробел, чтобы удовлетворить ограничение проверки для типа, допускающего значение NULL. Типы значений, не допускающие значение NULL (такие как decimal, int, float и DateTime), являются обязательными по своей природе и не нуждаются в атрибуте Required.

// Model
public class Foo 
{
    public decimal SomeRate {get; set;}
}

// Page
<form method="post">
    <div class="col-md-4">
        <div class="form-group">
            <label asp-for="BuyAndHoldReport.Mortgage" class="control-label"></label>
            <input asp-for="BuyAndHoldReport.Mortgage" class="form-control" />
            <span asp-validation-for="BuyAndHoldReport.Mortgage" class="text-danger"></span>
        </div>
    </div>
    <div class="form-group">
         <input type="submit" value="Create" class="btn btn-success" />
    </div>
</form>

Редактировать:

  • Я хочу попытаться не делать атрибуты обнуляемыми, потому что я хочу, чтобы они сохранялись со значением по умолчанию, а не с нулевым значением.
  • Я хочу попытаться избежать значений по умолчанию при загрузке страницы, потому что, если пользователь редактирует один из атрибутов, я не хочу, чтобы им приходилось помнить значение по умолчанию, прежде чем они изменят его, если они хотят отменить его.

person Beastwood    schedule 25.07.2018    source источник


Ответы (1)


Чтобы удалить Required из Non-NullAble типов значений, вы можете добавить ? к свойству, чтобы сделать его NullAble.

Что-то вроде ниже

public decimal? SomeRate { get; set; }
person Edward    schedule 25.07.2018
comment
спасибо за это, но я хотел бы избежать этого, потому что я хочу, чтобы значение по умолчанию было равно 0,0 м, а не нулю. - person Beastwood; 25.07.2018