在我的MVC3項目中,我有一個具有[Authorize]屬性的控制器。 我有一個表單提交沒有AJAX,重定向用戶(如預期)登錄屏幕,如果他/她沒有登錄。mvc 3,jquery ajax&表單身份驗證
但是,現在我有一個表單提交與jquery ajax和我怎麼能做同樣的事情?將用戶重定向到登錄屏幕(如果他/她未被授權)?成功登錄後,用戶應該重定向到初始操作。
控制器
[Authorize]
[ValidateInput(false)]
public JsonResult SubmitChatMessage(string message)
{
if (!string.IsNullOrEmpty(message))
{
// Do stuff
}
// Return all chat messages
return GetChatMessages();
}
客戶JQUERY
$(document).ready(function() {
$("form[action$='SubmitChatMessage']").submit(function (event) {
$.ajax({
url: $(this).attr("action"),
type: "post",
dataType: "json",
data: $(this).serialize(),
success: function (response) {
// do stuff
}
});
return false;
});
});
我可以從Firebug的控制檯窗口中看到,服務器返回:
GET http://domain/Account/LogOn?ReturnUrl=%2fProductDetails%2fSubmitChatMessage
期待您的幫助!
更新了可能的解決方案
- The different solutions are outlined here
- Another variant of one of the solutions
- Tutorial which might give some inspiration
如果您只是在做重定向,那麼AJAX登錄有什麼意義呢?爲什麼不使用常規表單? – RPM1984
問題是,登錄用戶應該能夠使用ajax將一些數據提交給控制器。如果他們沒有登錄,該怎麼辦?如何用jquery ajax處理這個場景? – Nima
對,我的壞 - 我誤解了。答案已添加。 – RPM1984