简单的问题,如果你使用ASP的Html Helper。NET MVC框架1很容易在文本框上设置默认值,因为有一个重载Html。文本框(字符串名称,对象值)。当我尝试使用Html时。TextBoxFor方法,我的第一个猜测是尝试以下不工作:

<%: Html.TextBoxFor(x => x.Age, new { value = "0"}) %>

我应该继续使用Html吗?文本框(字符串,对象)现在?


当前回答

对于。net core 5,在htmlAttributes中设置值似乎不起作用。但是你可以使用workaround:

var ageTextBox = (TagBuilder) Html.TextBoxFor(x => x.Age);
ageTextBox.Attributes.Remove("value");
ageTextBox.Attributes.Add("value", "value you want to set");

其他回答

这为我工作,在这种方式,我们设置默认值为空字符串

@Html.TextBoxFor(m => m.Id, new { @Value = "" })

如果你有一个用于编辑和添加的部分页面表单,那么我使用的将默认值设置为0的技巧是:

@Html.TextBox("Age", Model.Age ?? 0)

这样,如果未设置它将为0,如果存在则为实际年龄。

使用@Value是一种hack,因为它输出两个属性,例如:

<input type="..." Value="foo" value=""/>

你应该这样做:

@Html.TextBox(Html.NameFor(p => p.FirstName).ToString(), "foo")

这应该适用于MVC3和MVC4

 @Html.TextBoxFor(m => m.Age, new { @Value = "12" }) 

如果你想让它成为一个隐藏字段

 @Html.TextBoxFor(m => m.Age, new { @Value = "12",@type="hidden" }) 

试试这个,也就是删除新的{},并将其替换为字符串。

<%: Html.TextBoxFor(x => x.Age,"0") %>