2017-07-25 97 views
4

我的页面上有一个接受整数值的HTML数字输入。代码如下:默认值设置为0的输入呈现不带0

@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

使用0不加引号。因为这是一个'type = number',所以你传递一个字符串''0''而不是0''value = 0'(Yvette是正确的,我没有看到当我评论时发布的答案)。 –

回答

5

使用Value with a capital V

Value = "0" 

value="0" 

value是制定者使用的关键字。 for example

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

当你需要在创建该对象在代码中明确设置的“NUM”的值(在这种情况下,答案_ ++)背后 - 值未设置,所以它是空的。因此Value不会被setter的值覆盖。

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

+0

这不起作用0不回发。 HTML仍然呈现为值而不是值= 0 –

+0

那就是那个!谢谢! –

+0

我没有让你失望,我看到它在我投票之前就停止了。我不知道为什么它是downvoted。 –

2

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

Value = "0" 
+0

这不工作,一个0不会回发 –

+0

请确保Value中的'v'是大写。然后使用Value =“0”。 –

+0

现在它应该工作 –