Acabo de echar un vistazo a ASP.Net MVC3 y en una de las vistas generadas automáticamente para Create, utiliza "Html.EditorFor (model => model.User)" para proporcionar un cuadro de texto para que el usuario ingrese su nombre de usuario Idealmente, rellenaría automáticamente esto con @ User.Identity.Name.¿Cómo debo llenar automáticamente el Html.EditorFor con un valor en ASP.Net MVC3?
¿Cuál es la forma correcta de lograr esto? ¿Html.EditorFor me permite rellenarlo automáticamente en la vista, o debería establecerlo en el controlador al pasarlo?
He descubierto que si cambio el método de Crea en el controlador de esto:
public ActionResult Create()
{
return View();
}
A esto:
public ActionResult Create()
{
MyObject myobject = new MyObject();
myobject.User = User.Identity.Name;
return View(myobject);
}
Esto parece funcionar. ¿Es esta la forma correcta de hacer esto?
Gracias de antemano por cualquier confirmación de que estoy haciendo esto bien.
No hay clases estáticas involucradas. –
Sí - 'Usuario' es. –
no, no lo es. Es una propiedad del controlador que es un 'IPrincipal' que solo tiene un getter. Este getter llama a la propiedad HttpContext.User que se puede burlar. No es estático –