我試圖爲我的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