2011-05-19 15 views
6

quiero definir manualmente ID y el nombre de cuadro de texto así:MVC2: ¿Imposible cambiar el nombre con TextBoxFor?

<%: Html.TextBoxFor(model => model.Name, new { @id = "txt1", @name = "txt1" })%> 

Sin embargo, sólo se cambia el ello, no es el atributo de nombre, ¿por qué?

<input id="txt1" name="Name" type="text" value=""> 

¡Gracias!

+0

duplicados de http://stackoverflow.com/questions/6920935/ control-name-in-textboxfor-in-mvc3 y http://stackoverflow.com/questions/6057865/asp-net-mvc-3-override-name-attribute-with-textboxfor –

Respuesta

5

No se puede utilizar la versión de la lambda fuertemente tipado para esto, que había necesidad de utilizar la versión anterior

Html.TextBox("txt1",new {@id = "txt1"}) 
+1

Esta es una solución, sin embargo, es no "LA" solución. Por ejemplo, TextBoxFor() incluye atributos de validación discretos que dependen de los atributos que decoran una propiedad dada y que son IClientValidatable. TextBox() no. –

+0

@IsaacLlopis: verifique mi respuesta y se sorprenderá ... :) ¡qué mayúscula puede hacer! –

1

Si todavía necesita utilizar TextBoxFor(), puede cambiar el nombre de la propiedad en su modelo, que debería ser fácil si está utilizando ViewModels dedicados como se recomienda. Sin embargo, admito que es una recomendación que no siempre me sigo.

17

Esto está bien:

<%: Html.TextBoxFor(model => model.Name, new { Name = "txt1" })%> 

se escribe "Nombre" en lugar de "nombre"?

Salida:

<input name="txt1" type="text" value=""> 
+3

sandro es correcto, el "Nombre" capital funciona al menos en MVC3 – jaminto

+2

Usando ASP.NET MVC 3, '@ Html.TextBoxFor (m => m.NombreUsuario, nuevo {Nombre = "nombre_usuario"})' produce ' '(ambos atributos de nombre y nombre). –

+0

También funciona en MVC4, representando '' – parsh

10

... En realidad se puede utilizar sólo con Name primera letra en mayúscula en lugar de name:

@Html.TextBoxFor(model => model.Property, new { Name = "myName" }) 
+1

Wow, he tenido este problema por años, 'name' no funcionaba pero' Name' sí! Incluso funciona para 'Id'. –

Cuestiones relacionadas