【问题标题】:MVC Textbox not accepting empty for nullable intMVC 文本框不接受可为空的 int 为空
【发布时间】:2012-09-27 13:21:10
【问题描述】:

型号

public int? SizeLength { get; set; }

查看

<div class="editor-field">
    @Html.TextBoxFor(p => p.SizeLength, new { @style = "Width: 75px" })
    @Html.ValidationMessageFor(p => p.SizeLength)
</div>

问题:

当我将字段留空时,我得到“字段 SizeLength 必须是数字。”。将字段留空应在返回的模型中转换为空值。为什么我的字段类型是可为空的 int 时收到此消息?

【问题讨论】:

    标签: c# model-view-controller validation


    【解决方案1】:

    试试EditorFor,而不是TextBoxFor

    不确定它是否会起作用,因为对象的内容(EditorFor 或 TextBoxFor)是一个空字符串,而不是 null,因此您必须处理转换问题,可能会添加一个默认值。

    【讨论】:

    • 是的,看我的编辑,值不为空,是一个空字符串,所以你必须自己处理演员表
    • 看看 AllowEmptyStrings 数据注解
    • 也没有任何区别。我认为您将空字符串转换为 int? 是对的。我需要自己做。
    猜你喜欢
    • 2014-02-09
    • 1970-01-01
    • 1970-01-01
    • 2017-03-07
    • 2016-01-22
    • 2014-12-26
    • 2016-03-19
    • 2023-03-21
    • 1970-01-01
    相关资源
    最近更新 更多