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

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 en raison d’une surcharge Html.TextBox(ssortingng name, object value) . Lorsque j’ai essayé d’utiliser la méthode Html.TextBoxFor , je devais d’abord essayer ce qui ne fonctionnait pas:

  x.Age, new { value = "0"}) %> 

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

vous pouvez essayer ceci

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

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

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

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

Vous pouvez simplement faire:

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

ou mieux, il passera à la valeur par défaut “0” si le modèle est nul, par exemple si vous avez la même vue pour l’édition et la création:

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

valeur = “0” définira la valeur par défaut pour @ Html.TextBoxfor

sa casse “v” devrait être capitale

Voici ci-dessous un exemple de travail:

 @Html.TextBoxFor(m => m.Nights, new { @min = "1", @max = "10", @type = "number", @id = "Nights", @name = "Nights", Value = "1" }) 

Utiliser @Value est un hack, car il génère deux atsortingbuts, par exemple:

  

Vous devriez le faire à la place:

 @Html.TextBox(Html.NameFor(p => p.FirstName).ToSsortingng(), "foo") 

Voici comment je l’ai résolu. Cela fonctionne si vous l’utilisez également pour l’édition.

 @Html.TextBoxFor(m => m.Age, new { Value = Model.Age.ToSsortingng() ?? "0" }) 

Si vous avez un formulaire de page partiel à la fois pour l’édition et l’ajout, le truc que j’utilise pour définir la valeur par défaut sur 0 est de faire ce qui suit:

 @Html.TextBox("Age", Model.Age ?? 0) 

De cette façon, il sera 0 si non défini ou l’âge réel s’il existe.

cela a fonctionné pour moi, de cette manière nous avons mis la valeur par défaut à la chaîne vide

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

Ce travail pour moi

 @Html.TextBoxFor(model => model.Age, htmlAtsortingbutes: new { @Value = "" }) 

Essayez aussi ceci: supprimer new {} et remplacez-le par une chaîne.

 < %: Html.TextBoxFor(x => x.Age,"0") %>