删除剃刀页面中数据属性的继承的必需属性

时间:2018-07-25 02:36:06

标签: c# asp.net-core-2.0 data-annotations razor-pages

我有一个带有一些小数或双精度属性的模型。我不希望它们是必需的,但我想不出一种方法来禁用必需属性的继承。

这是剃刀页面验证文档中的摘录:

  

Required和MinimumLength属性指示属性必须具有值。但是,没有什么可以阻止用户输入空格以满足可空类型的验证约束。非空值类型(例如,十进制,整数,浮点型和日期时间)本质上是必需的,并且不需要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>

编辑:

  • 我想避免将属性设置为可空值,因为我希望将其保存为默认值而不是null
  • 我想避免在加载页面时将默认值设为默认值,因为如果用户编辑其中一个属性,则我不想让他们在想取消设置默认值之前记住默认值。

1 个答案:

答案 0 :(得分:1)

For removing Required on Non-NullAble value types, you could add ? to the property to make it NullAble.

Something like below

public decimal? SomeRate { get; set; }