【问题标题】:Remove inherited required attribute on data attributes in razor pages删除剃须刀页面中数据属性上继承的必需属性
【发布时间】:2019-01-01 18:00:32
【问题描述】:

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

这是来自 razor pages 验证文档的 sn-p:

Required 和 MinimumLength 属性表示属性必须有值。但是,没有什么能阻止用户输入空格来满足可空类型的验证约束。不可为 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>

编辑:

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

【问题讨论】:

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


    【解决方案1】:

    要删除Non-NullAble 值类型上的Required,您可以将? 添加到属性以使其成为NullAble

    如下图

    public decimal? SomeRate { get; set; }
    

    【讨论】:

    • 感谢您,但我想避免这样做,因为我希望该值默认为 0.0m 而不是 null。
    猜你喜欢
    • 2019-05-16
    • 2022-01-18
    • 1970-01-01
    • 1970-01-01
    • 2020-03-02
    • 2018-12-05
    • 2014-01-19
    • 2020-09-21
    • 1970-01-01
    相关资源
    最近更新 更多