web-dev-qa-db-fra.com

MVC Html.BeginForm utilisant des zones

J'utilise des zones MVC et sur une vue qui se trouve dans une zone appelée "Test", j'aimerais avoir un formulaire qui publie la méthode suivante:

area: Security
controller: AccountController
method: logon

Comment puis-je y arriver avec Html.BeginForm? Peut-on le faire?

48
Mariko

Essaye ça:

Html.BeginForm("logon", "Account", new {area="Security"})
76
Nam Le

Pour ceux d'entre vous qui veulent savoir comment le faire fonctionner avec le modèle mvc4 par défaut

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

Essayez de spécifier la zone, le contrôleur et l'action en tant que RouteValues

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

Utilisez ceci pour une zone avec des attributs HTML

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

   ...

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

Pour Ajax BeginForm, nous pouvons utiliser ceci

Ajax.BeginForm("IndexSearch", "Upload", new { area = "CapacityPlan" }, new AjaxOptions { HttpMethod = "POST", InsertionMode = InsertionMode.Replace, UpdateTargetId = updateTarget }, new { id = "search-form", role = "search" })
0
Sumesh Es