He creado un proyecto MVC 3 predeterminado (usando una afeitadora), para demostrar un problema.TextBoxFor vs EditorFor, y htmlAttributes vs additionalViewData
En la página de inicio de sesión, hay una línea:
@Html.TextBoxFor(m => m.UserName)
si cambio esto:
@Html.TextBoxFor(m => m.UserName, new { title = "ABC" })
Entonces el que se representa como (con un atributo de título):
<input data-val="true" data-val-required="The User name field is required." id="UserName" name="UserName" title="ABC" type="text" value="" />
Sin embargo, si lo hago un editorPara:
@Html.EditorFor(m => m.UserName, new { title = "ABC" })
Entonces se rindió (sin atributo title) como:
<input class="text-box single-line" data-val="true" data-val-required="The User name field is required." id="UserName" name="UserName" type="text" value="" />
Así que en resumen, el atributo de título se pierde cuando uso EditorFor.
Sé que el segundo parámetro para TextBoxFor se llama htmlAttributes, y para EditorFor es additionalViewData, sin embargo, he visto ejemplos donde EditorFor puede representar atributos proporcionados con este parámetro.
¿Alguien puede explicar lo que estoy haciendo mal y cómo puedo tener un atributo de título cuando uso EditorFor?
Fantástico, me iba a preguntar sobre este problema exacto. – aknuds1