【问题标题】:TextBoxFor: INumber type but with default value = ""TextBoxFor: INumber 类型但默认值 = ""
【发布时间】:2017-11-10 22:12:53
【问题描述】:

我使用的是 Asp.net Core 2.0,我有以下代码:

@Html.TextBoxFor(model => model.personalData.sonsNumber, null, new { type = "number", value = "", required = "required", pattern="[0-9]" })

我正在尝试使用 HMTL5 提供的验证功能。问题是我的model.personalData.sonsNumber 是一个 int 并且有一个数字作为默认值,我需要将默认值设置为空字符串 ("")。

我已经尝试了value="",但它不起作用。

谁能告诉我如何做到这一点?

提前谢谢你。

【问题讨论】:

    标签: asp.net razor asp.net-core-2.0


    【解决方案1】:

    您可以将属性的类型从 int 更改为 nullable int (int?)

    public class PersonalData
    {
       [Required]  
       public int? SonsNumber { set;get;}  // I took the freedom to follow CamelCasing :)
    }
    

    nullable int 的默认值现在将是NULL,因此标签助手/html 助手将为此呈现空字符串。 int类型的默认值为0

    【讨论】:

    • 非常感谢。 ? 完美运行。但是你又问了我一个问题:你为什么使用[Required] 标签,谁可以帮助我?
    • 那是用于服务器端模态验证。当数据发布到服务器时,模型验证框架可以验证发布的数据。标签助手还将使用此属性来生成 jquery 客户端验证所需的 html5 属性。请记住,永远不要相信来自客户端的数据。始终在服务器上验证。如果您不喜欢利用模型验证框架,您可以简单地删除 Required 属性
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-14
    • 1970-01-01
    相关资源
    最近更新 更多