2009-01-28 5 views
7

Actualmente cuando quiero establecer los atributos HTML como maxlength y autocompletar, tengo que usar la siguiente sintaxis:maxlength Ajuste y otros atributos HTML usando métodos auxiliares ASP.NET MVC

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

¿Hay alguna manera de hacerlo esto sin tener que establecer explícitamente la porción ViewData ["username"]? En otras palabras, quiero confiar en la rutina de carga automática del método auxiliar en lugar de tener que decirle explícitamente qué campo cargar de ViewData.

Respuesta

25

Sólo tiene que pasar "nulo", como segundo parámetro:

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

sí, pero usted tiene que utilizar en lugar de ViewData.Model ViewData.Item()

el código en el controlador debe tener este aspecto (SRY código VB.NET 4)

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

    Dim user As New User 

    Return View(user) 
End Function 

ahora puede hacerlo en la vista

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

nota de que el objeto usuario tiene un nombre de propiedad pública

hth

0

utilicé la construcción de la siguiente manera:

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

Esto no persiste en el estado de visualización. ¿Qué pasa si después del envío, hubo un error de validación que quería mostrar al usuario? Hacer esto eliminaría el cuadro de texto "nombre de usuario" y obligaría al usuario a comenzar desde cero. –

0

Para Ajuste de la longitud máxima del cuadro de texto que puede pasar "" o nula para el segundo Parámetro y establecer atributos html (maxlength) como tercer parámetro

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