简单的问题,如果你使用ASP的Html Helper。NET MVC框架1很容易在文本框上设置默认值,因为有一个重载Html。文本框(字符串名称,对象值)。当我尝试使用Html时。TextBoxFor方法,我的第一个猜测是尝试以下不工作:
<%: Html.TextBoxFor(x => x.Age, new { value = "0"}) %>
我应该继续使用Html吗?文本框(字符串,对象)现在?
简单的问题,如果你使用ASP的Html Helper。NET MVC框架1很容易在文本框上设置默认值,因为有一个重载Html。文本框(字符串名称,对象值)。当我尝试使用Html时。TextBoxFor方法,我的第一个猜测是尝试以下不工作:
<%: Html.TextBoxFor(x => x.Age, new { value = "0"}) %>
我应该继续使用Html吗?文本框(字符串,对象)现在?
当前回答
事实证明,如果你没有在控制器中指定Model到View方法,它就不会用默认值为你创建一个对象。
[AcceptVerbs(HttpVerbs.Get)]
public ViewResult Create()
{
// Loads default values
Instructor i = new Instructor();
return View("Create", i);
}
[AcceptVerbs(HttpVerbs.Get)]
public ViewResult Create()
{
// Does not load default values from instructor
return View("Create");
}
其他回答
试试这个,也就是删除新的{},并将其替换为字符串。
<%: Html.TextBoxFor(x => x.Age,"0") %>
你可以简单地做:
<%= Html.TextBoxFor(x => x.Age, new { @Value = "0"}) %>
或者更好的是,如果模型为空,这将切换到默认值'0',例如,如果你有相同的视图用于编辑和创建:
@Html.TextBoxFor(x => x.Age, new { @Value = (Model==null) ? "0" : Model.Age.ToString() })
如果你有一个用于编辑和添加的部分页面表单,那么我使用的将默认值设置为0的技巧是:
@Html.TextBox("Age", Model.Age ?? 0)
这样,如果未设置它将为0,如果存在则为实际年龄。
这应该适用于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, new { @Value = "0"}) %>
注意@Value有一个大写V