为什么数字在字段中为零?

问题描述

告诉我如何从输入字段中删除数字零。如何使字段为空? 我现在在文档中找不到描述。

谢谢您的帮助!

 public class Bag
    {
        [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
        [Key]
        public long Id { get; set; }

        [required(ErrorMessage = "Обязательное поле")]
        public long Bag_id { get; set; }

        //public DateTime Report_Date { get; set; }
        [required]
        [Column(TypeName ="decimal(4,2)")]
        public decimal Weigth { get; set; }
}

AddBags.razor

@page "/AddBags"
@using Extrasil.Data
@using Extrasil.Data.Models
@using Extrasil.Data.Controllers
@inject BagController objAddBags
@inject NavigationManager NavigationManager

<h3>Добавить мешок</h3>

<hr />
<form>
    <div class="row">
        <div class="col-md-8">
            <div class="form-group">
                <label for="Bag_id" class="custom-label">Номер мешка</label>
                <input form="Bag_id" class="form-control" @bind="@bag.Bag_id" />
            </div>
            <div class="form-group">
                <label for="Weigth" class="custom-label">Вес</label>
                <input form="Weigth" class="form-control" @bind="@bag.Weigth" />
            </div>
...

Picture with my problem

解决方法

您可能想要将类型更改为long的可为空。 long的默认值是0,因此如果绑定它,您将得到0。Nullable<long>long?的默认值是null,可能是您想要的效果。尝试更改属性的定义。

public class Bag
{
        [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
        [Key]
        public long Id { get; set; }

        [Required(ErrorMessage = "Обязательное поле")]
        public long? Bag_id { get; set; }

        //public DateTime Report_Date { get; set; }
        [Required]
        [Column(TypeName ="decimal(4,2)")]
        public decimal? Weigth { get; set; }
}

如果进行了这些更改,您仍然可以分别将长值和十进制值分配给这些属性,但是它将不再默认为0。

,

您将必须将long属性更改为可为空的long?,如下所示:

public class Bag
{
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    [Key]
    public long? Id { get; set; }

    [Required(ErrorMessage = "Обязательное поле")]
    public long? Bag_id { get; set; }
}

正如我看到的那样,您正在对数据库和视图使用相同的模型,您可以创建一个单独的视图模型,并在其中添加可为空的属性,并使数据库实体模型保持为非空。