You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Blazor输入框默认显示0的移除及空字段设置咨询

解决Blazor输入框默认显示0的问题

嘿,我来帮你搞定这个问题!你看到输入框里默认显示0,是因为你的Bag_id(long类型)和Weigth(decimal类型)都是C#的值类型——值类型的默认值就是0,Blazor的双向绑定会把这个默认值直接渲染到输入框里,所以页面加载时就会显示0。

要把输入框设为空,最直接的方法是把这些值类型改成可空值类型,这样它们的默认值就会变成null,Blazor就会渲染空的输入框了。下面是具体的修改步骤:

1. 修改Model中的属性类型

把Bag类里的Bag_id和Weigth改成可空类型(在类型后面加?),同时保留原来的验证属性,确保必填逻辑依然生效:

public class Bag {
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    [Key]
    public long Id { get; set; }
    [Required(ErrorMessage = "Обязательное поле")]
    public long? Bag_id { get; set; } // 改为可空long类型
    //public DateTime Report_Date { get; set; }
    [Required]
    [Column(TypeName ="decimal(4,2)")]
    public decimal? Weigth { get; set; } // 改为可空decimal类型
}

2. 验证逻辑依然有效

你不用担心必填验证失效——[Required]属性对可空值类型依然起作用:当用户没有输入内容时,Bag_id和Weigth会是null,这时候验证会触发你设置的错误提示,和你原来的需求一致。

3. 测试页面

修改完成后,重新运行你的应用,AddBags页面的输入框就会默认显示为空,而不是0了。用户输入数字后,双向绑定会正常将值赋值给对应的属性。

如果你的数据库表中对应的列设置了NOT NULL(不允许为空),也不用额外担心——因为验证会确保用户必须输入值,保存到数据库时属性会有有效的数值,不会出现null的情况。

内容的提问来源于stack exchange,提问作者Andrey

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.09 10:52:54