我正在使用Ajax.BeginForm創建表單,該表單將執行ajax回發到某個控制器操作,然後響應視圖是插入到UpdateTargetId中。ASP.NET MVC Ajax發佈到需要驗證的操作返回用戶會話超時時的登錄視圖
using (Ajax.BeginForm("Save", null,
new { userId = Model.UserId },
new AjaxOptions { UpdateTargetId = "UserForm" },
new { name = "SaveForm", id = "SaveForm" }))
{
[HTML SAVE BUTTON]
}
除非用戶會話超時,然後他們被重定向回登錄頁面,否則一切都會很好。然後,由於Authorize屬性,登錄頁面從Ajax調用中返回,並且將html加載到UpdateTargetId中,因此我最終在用戶配置文件頁面(在目標標識中)顯示登錄頁面html。我的控制器動作如下所示:
[Authorize]
public ActionResult Save(Int32 UserId)
{
//code to save user
return View("UserInfoControl", m);
}
我該如何解決這個問題?
UPDATE(2011-10-20): 找到這個post from Phil Haack關於這個確切的問題 - http://haacked.com/archive/2011/10/04/prevent-forms-authentication-login-page-redirect-when-you-donrsquot-want.aspx。我還沒有機會消化或實施他的解決方案。
在這裏看到這個問題:http://stackoverflow.com/questions/743252/how-may-i-best-use-the-authorize-attribute-with-ajax-and-partial-views –
感謝您的鏈接,但我沒有使用jQuery ...只是ASP.NET MVC內置的Ajax.BeginForm助手(這是使用jQuery?)。 –
包含部分的視圖是否具有Authorize屬性? –