Как установить значение по умолчанию с помощью Html.TextBoxFor?
Простой вопрос, если вы используете Html Helper из ASP.NET MVC Framework 1, легко установить значение по умолчанию в текстовое поле, потому что есть перегрузка Html.TextBox(string name, object value)
. Когда я попытался использовать метод Html.TextBoxFor, я сначала предпочел попробовать следующее, которое не сработало:
<%: Html.TextBoxFor(x => x.Age, new { value = "0"}) %>
Должен ли я просто придерживаться Html.TextBox(строка, объект)?
Ответы
Ответ 1
Оказывается, если вы не укажете метод Model to 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");
}
Ответ 2
вы можете попробовать это
<%= Html.TextBoxFor(x => x.Age, new { @Value = "0"}) %>
Ответ 3
Это должно работать для MVC3 и MVC4
@Html.TextBoxFor(m => m.Age, new { @Value = "12" })
Если вы хотите, чтобы это было скрытое поле
@Html.TextBoxFor(m => m.Age, new { @Value = "12",@type="hidden" })
Ответ 4
Значение по умолчанию будет значением вашего свойства Model.Age
. Такого рода цели.
Ответ 5
Вы можете просто сделать:
<%= Html.TextBoxFor(x => x.Age, new { @Value = "0"}) %>
или лучше, это переключится на значение по умолчанию "0", если модель равна нулю, например, если у вас есть один и тот же вид для редактирования и создания:
@Html.TextBoxFor(x => x.Age, new { @Value = (Model==null) ? "0" : Model.Age.ToString() })
Ответ 6
value = "0" установит значение defualt для @Html.TextBoxfor
чувствительность к регистру
"v" должен быть капиталом
Ниже приведен рабочий пример:
@Html.TextBoxFor(m => m.Nights,
new { @min = "1", @max = "10", @type = "number", @id = "Nights", @name = "Nights", Value = "1" })
Ответ 7
Использование @Value
- это взлом, поскольку он выдает два атрибута, например:
<input type="..." Value="foo" value=""/>
Вместо этого вы должны сделать это:
@Html.TextBox(Html.NameFor(p => p.FirstName).ToString(), "foo")
Ответ 8
Вот как я это решил. Это работает, если вы также используете это для редактирования.
@Html.TextBoxFor(m => m.Age, new { Value = Model.Age.ToString() ?? "0" })
Ответ 9
Если у вас есть частичная форма страницы для редактирования и добавления, то трюк, который я использую для значения по умолчанию для 0
, заключается в следующем:
@Html.TextBox("Age", Model.Age ?? 0)
Таким образом, он будет 0
, если он не установлен или фактический возраст, если он существует.
Ответ 10
это сработало для меня, таким образом мы установили значение по умолчанию для пустой строки
@Html.TextBoxFor(m => m.Id, new { @Value = "" })
Ответ 11
Эта работа для меня
@Html.TextBoxFor(model => model.Age, htmlAttributes: new { @Value = "" })
Ответ 12
Попробуйте также, чтобы удалить новый {} и заменить его на строку.
<%: Html.TextBoxFor(x => x.Age,"0") %>
Ответ 13
@Html.TextBoxFor(m => m.Id, new {@Value = ""}) это работает