c# - 默认值设置为 0 的输入在没有 0 的情况下呈现

标签 c# html input default

<分区>

我的页面上有一个接受整数值的 HTML 数字输入。代码如下:

@Html.TextBox("Answer[" + i + "].Score", null, new { @class = "form-control", type = "number", value="0", id = "Answer[" + i + "]_Score" })

在我的模型中,我已将所有 Score 属性默认为 0,但它仍然没有在 View 中呈现为 0。然后我直接在输入上使用了 value="0" 但它仍然没有呈现 0。

它呈现如下:

<input class="form-control" id="Answer[0]_Score" name="Answer[0].Score" type="number" value="">

这只是我去保存表单时的一个问题,当分数不可为空时,一个空值会发送到 Controller ,因此表单不会提交。

有什么方法可以让 0 成为默认值而不是空白值?

最佳答案

使用Value with a capital V :

Value = "0" 

不是

value="0"

value 是 setter 中使用的关键字。 for example .

private int num;
public virtual int Number
{
    get { return num; }
    set { num = value; }
}

因为您需要在创建对象时在后面的代码中显式设置“num”的值(在本例中为 Answer_++)- 该值未设置,因此为空。

因此 Value 不会被 setter 的值覆盖。

当通过 Controller 传递数据时,也总是有错误处理和空值检查。

关于c# - 默认值设置为 0 的输入在没有 0 的情况下呈现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45302289/

相关文章:

html - 如何在输入字段中移动文本?

Javascript 计数器函数 onload 不起作用

c# - Xamarin - 如何从两个类中获取 ListView 源数据?

c# - 带有 nunit 的 Microsoft Fakes 和 Shims

c# - 在这种情况下,避免ObjectDisposedException的正确方法是?

javascript - 使用 javascript 阻塞浏览器创建具有数百万条记录的 html 表

javascript - 如何从表单输入 type=radio 获取值?

python-3.x - 如果字符串可以转换为 float,则返回 True

javascript - 当我在 chrome 的 input type = search 元素上单击 X 时,是否会触发任何事件?

c# - 任务并行库 vs native 线程同步