2011-03-12 21 views
43

que estoy usando MVC áreas y en una vista que está en una zona llamada "Test" Me gustaría tener una forma que los mensajes con el siguiente método:MVC Html.BeginForm utilizando Áreas

area: Security 
controller: AccountController 
method: logon 

¿Cómo puede Hago que esto suceda con Html.BeginForm? Se puede hacer?

Respuesta

68

Prueba esto:

Html.BeginForm("logon", "Account", new {area="Security"}) 
6

intente especificar la zona, controlador, acción que RouteValues ​​

@using (Html.BeginForm(new { area = "security", controller = "account", action = "logon" })) 
{ 
    ... 
} 
73

Para aquellos de ustedes que quieren saber cómo conseguir que funcione con la plantilla mvc4 por defecto

@using (Html.BeginForm("LogOff", "Account", new { area = ""}, FormMethod.Post, new { id = "logoutForm" })) 
+5

+1 para el tipo anónimo * * adicional 'área', en lugar de añadir 'área' para el tipo anónimo 'id', como lo había intentado. – Jeff

3

uso de esta zona con atributos HTML

@using (Html.BeginForm(
     "Course", 
     "Assign", 
     new { area = "School" }, 
     FormMethod.Get, 
     new { @class = "form_section", id = "form_course" })) 
{ 

    ... 

} 
3
@using (Html.BeginForm("", "", FormMethod.Post, new { id = "logoutForm", action = "/Account/LogOff" })) 
       {@Html.AntiForgeryToken() 
        <a class="signout" href="javascript:document.getElementById('logoutForm').submit()">logout</a> 
       } 
Cuestiones relacionadas