MVC Html.BeginForm en utilisant des zones

J'utilise des zones MVC et sur une vue située dans une zone appelée "Test", je voudrais avoir un formulaire qui affiche la méthode suivante:

area: Security
controller: AccountController
method: logon

Comment puis-je y arriver avec Html.BeginForm? Peut-il être fait?

47
demandé sur Robert Levy 2011-03-12 18:46:20

5 réponses

Essayez ceci:

Html.BeginForm("logon", "Account", new {area="Security"})
74
répondu Nam Le 2011-03-12 16:36:53

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" }))
82
répondu mosesfetters 2016-06-10 23:55:02

Essayez de spécifier la zone, le contrôleur, l'action comme RouteValues

@using (Html.BeginForm( new { area = "security", controller = "account", action = "logon" } ))
{
   ...
}
6
répondu tvanfosson 2011-03-12 16:17:29

Utilisez ceci pour la zone avec des attributs HTML

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

   ...

}
4
répondu SamJackSon 2013-04-23 05:52:13
@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
répondu Mirak 2014-01-18 09:14:11