我试图为我的MVC 5项目创建一个登录表单。我已经有验证工作,所以我的控制器装有[Authorize]
。当我启动我的项目,我正确地引导到我的匿名登录操作:MVC 5表单不会发布到[AllowAnonymous]方法
[HttpGet]
[AllowAnonymous]
public ActionResult Login()
{
return View();
}
我已经安装在该视图中我的帖子的形式。生成的HTML看起来很好。
我再补充一点,应该接受表单提交的新方法:
[HttpPost]
[AllowAnonymous]
public ActionResult Login(FormCollection formCollection)
{
...
我发现,当我提交表单,我的第一个Login
方法被调用 - 显然引起了一些身份验证问题重定向。 (提琴手跟踪显示我的表单被POST发送到/ Login?key = myKeyHere,而不是作为表单条目发送到/ Login with key = myKeyHere此外,如果我更改了我的身份验证的重定向URL从/登录到/ SomethingElse,表单提交让我重定向到/ SomethingElse,而不是将其发布到/登录。)
如果我从我的控制器中删除[Authorize]
,我的表单提交就会很好。
它似乎没有问题,我的两个方法是相同的名称(Login
),因为我可以重命名接受POST的方法,更改我的表单的操作,并提交到,我被重定向再次到我的GET登录页面。
如何将表单发布到[AllowAnonymous]
方法需要做些什么?
更新,包括我查看 我的观点已经使用了POST操作:
@using (Html.BeginForm("Login", "Home", FormMethod.Post))
{
@Html.TextBox("key", string.Empty, new { @class = "input_centered", id = "key_text"})
<input type="submit" id="key_submit" class="enter" name="submit" value="Enter" />
}
生成的HTML看起来不错:
<form action="/Login" method="post">
<input class="input_centered" id="key_text" name="key" type="text" value="" />
<input type="submit" id="key_enter" class="enter" name="submit" value="Enter" />
如果您创建一个新的MVC应用程序,该模板将创建一个登录POST操作,就像您试图实现的一样。也许透过这些可以帮助你。你能否显示你的表格被提交? – Jonesopolis 2014-11-03 23:45:26