【发布时间】:2011-07-31 17:51:23
【问题描述】:
在我的 MVC3 项目中,我有一个带有 [Authorize] 属性的控制器。 我有一个没有 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
期待您的帮助!
更新了可能的解决方案
【问题讨论】:
-
如果您只是重定向,那么 AJAX 登录的意义何在?为什么不只使用常规形式?
-
重点是,登录用户应该能够使用 ajax 向控制器提交一些数据。如果他们没有登录怎么办?如何使用 jquery ajax 处理这种情况?
-
对,我的错 - 我误解了。已添加答案。
标签: jquery ajax asp.net-mvc-3 forms-authentication authorize