Как установить значение по умолчанию с помощью 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 = ""}) это работает