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

时间:2017-07-25 11:45:01

标签: 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,但在视图中仍然没有使用0进行渲染。然后我直接在输入上使用了value="0",但它仍然没有呈现0。

它呈现如下:

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

当我去保存表单时,这只是一个问题,当得分不可为空时,会向控制器发送空值,因此表单不会提交。

有没有办法让0成为默认值而不是空值?

2 个答案:

答案 0 :(得分:5)

使用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; }
}

您需要设置&#34; num&#34;的值(在这种情况下,回答_ ++)在创建对象后面的代码中显式显式 - 该值未设置,因此它是空的。

所以Value不会被setter的值覆盖。

通过控制器传递数据时,也总是有错误处理和空检查。

答案 1 :(得分:2)

确保Value中的'v'为大写。然后使用:

    Value = "0"