![](/img/trans.png)
[英]How do I prevent double-clicking in ASP.NET MVC without using JavaScript?
[英]How do I prevent “return false;” in ajaxSubmit from conflicting with ASP.NET MVC RedirectToAction
我一定想念一些明显的东西...
我有一个正常工作的标准ASP.NET MVC3登录操作。 如果用户/密码匹配,则FormsAuthentication会执行其SetCookie例程并按预期方式执行RedirecToAction,否则它将返回设置模型状态错误,并将模型返回到视图。 因此,这在禁用Javascript的情况下有效。
我现在正在尝试添加jQuery.Form插件来执行ajaxSubmit,如果用户不使用匹配的用户/密码组合,则会显示错误。
$(document).ready(function () {
var options = {
success: showResponse
};
$('#formLogon').submit(function () {
$(this).ajaxSubmit(options);
// return false;
});
function showResponse() {
$("#loginError").show();
}
});
我的问题是,如果我取消注释“ return false”; 在ajaxSubmit之后,调用showResponse函数时,错误div会正确显示。 但是,如果提交了正确的用户名/密码,则用户将永远不会重定向,因为重定向被拦截了(但是我已经在Fiddler中看到了GET调用,所以我知道重定向正在发出请求)。
我尝试将“ return false”返回; 进入showResponse函数,但不起作用,在ajaxSubmit之后没有返回false的情况下,MVC重定向会在回调之前启动,并且永远不会显示错误div。
这不是我要尝试执行的正确方法吗?
您应该尝试研究jQuery的$ .ajax函数。 使用此功能,您可以定义回调。
应该发生以下情况:提交时始终返回false当用户输入登录名时,发出ajax请求。 如果用户输入正确的登录名,则删除提交功能,并使用$(this).submit
进行提交。 (使用$ .ajax的回调),然后将return false返回。
这是一个肮脏的修复程序,但我认为它将起作用
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.