213 votes

Comment définir une valeur par défaut avec Html.TextBoxFor?

Une question simple, si vous utilisez l’aide HTML de ASP.NET MVC Framework 1, il est facile de définir une valeur par défaut dans une zone de texte car il ya une surcharge Html.TextBox(string name, object value) . Lorsque j'ai essayé d'utiliser la méthode Html.TextBoxFor , je devais d'abord essayer ce qui ne fonctionnait pas:

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

Dois-je juste rester avec Html.TextBox (string, object) pour le moment?

380voto

Tassadaque Points 4317

vous pouvez essayer ceci

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

63voto

Gokul Points 527

Cela devrait fonctionner pour MVC3 et MVC4

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

Si vous voulez que ce soit un champ caché

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

31voto

dcompiled Points 1578

Il s'avère que si vous ne spécifiez pas le modèle à la méthode View dans votre contrôleur, il ne crée pas d'objet pour vous avec les valeurs par défaut.

 [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");
}
 

22voto

Fyodor Soikin Points 7907

La valeur par défaut sera la valeur de votre propriété Model.Age . C'est un peu le point entier.

21voto

Chtiwi Malek Points 1574

Si vous avez la même vue pour l'édition et l'ajout, vous pouvez le faire comme ceci:

 @Html.TextBoxFor(x => x.Age, new { @Value = (Model==null) ? "0" : Model.Age.ToString() })
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X