How to set a default value with Html.TextBoxFor?
Simple question, if you use the Html Helper from ASP.NET MVC Framework 1 it is easy to set a default value on a textbox because there is an overload Html.TextBox(string name, object value)
. When I tried using the Html.TextBoxFor method, my first guess was to try the following which did not work:
<%: Html.TextBoxFor(x => x.Age, new { value = "0"}) %>
Should I just stick with Html.TextBox(string, object) for now?
Solution 1:
Try this:
<%= Html.TextBoxFor(x => x.Age, new { @Value = "0"}) %>
note that @Value
has a capital V
Solution 2:
This should work for MVC3 & MVC4
@Html.TextBoxFor(m => m.Age, new { @Value = "12" })
If you want it to be a hidden field
@Html.TextBoxFor(m => m.Age, new { @Value = "12",@type="hidden" })
Solution 3:
It turns out that if you don't specify the Model to the View method within your controller, it doesn't create a object for you with the default values.
[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");
}
Solution 4:
The default value will be the value of your Model.Age
property. That's kind of the whole point.