2009-01-28 6 views
7

Actuellement quand je veux définir les attributs HTML comme maxlength et autocomplete, je dois utiliser la syntaxe suivante:Réglage maxlength et d'autres attributs HTML en utilisant des méthodes d'aide ASP.NET MVC

<%= Html.TextBox("username", ViewData["username"], new { maxlength = 20, autocomplete = "off" }) %> 

Est-il possible de le faire ceci sans avoir à définir explicitement la partie ViewData ["username"]? En d'autres termes, je veux me fier à la routine de chargement automatique de la méthode d'assistance plutôt que d'avoir à lui dire explicitement quel champ charger à partir de ViewData.

Répondre

25

Il suffit de passer "null" comme second paramètre:

<%= Html.TextBox("username", null, new { maxlength = 20, autocomplete = "off" }) %> 
0

oui, mais vous devez utiliser ViewData.Model au lieu de ViewData.Item()

le code dans votre contrôleur devrait ressembler à ceci (4 SRY code VB.NET)

Function Index() 
    ViewData("Title") = "Home Page" 
    ViewData("Message") = "Welcome to ASP.NET MVC!" 

    Dim user As New User 

    Return View(user) 
End Function 

maintenant vous peut le faire dans la vue

<%=Html.TextBox("username", Nothing, New With {.maxlength = 30})%> 

Notez que l'objet utilisateur a un nom d'utilisateur de la propriété publique

HTH

0

je construction comme ci-dessous:

<%= Html.TextBox("username", "", new { @maxlength = "20", @autocomplete = "off" }) %> 
+0

Ceci ne permet pas de conserver l'état viewstate. Que faire si, après la soumission, il y avait une erreur de validation que je voulais afficher à l'utilisateur? Cela effacera la zone de texte "nom d'utilisateur" et forcera l'utilisateur à recommencer à zéro. –

0

pour régler la longueur maximum de TextBox vous pouvez passer "" ou nulle pour le deuxième Paramètre et définition des attributs html (maxlength) en tant que troisième paramètre

<%=Html.TextBox("username", "", new { @maxlength = 10 }) %> 
Questions connexes