我的页面上有一个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成为默认值而不是空值?
答案 0 :(得分:5)
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"