在我的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