Asp.net mvc 未按正确顺序调用asp.net MVC ajax方法
我有一个asp.net应用程序,如果用户未通过身份验证,我想显示登录弹出窗口,如果用户通过身份验证,则在同一页面上显示memberarea弹出窗口 我有这个控制器动作方法Asp.net mvc 未按正确顺序调用asp.net MVC ajax方法,asp.net-mvc,jquery,asp.net-mvc-2,Asp.net Mvc,Jquery,Asp.net Mvc 2,我有一个asp.net应用程序,如果用户未通过身份验证,我想显示登录弹出窗口,如果用户通过身份验证,则在同一页面上显示memberarea弹出窗口 我有这个控制器动作方法 [ActionName("151LoginAPI")] public ActionResult NewCallRecording(string ID, string PSSWD, string ACCID, string PASSWDINT) { .... .... ... return v
[ActionName("151LoginAPI")]
public ActionResult NewCallRecording(string ID, string PSSWD, string ACCID, string PASSWDINT)
{
....
....
...
return view();
}
在151API视图中,我在document.ready函数中完成了此操作
$.ajax({
type: "POST",
dataType: "json",
url: "/recording/verifyUser",
data: {
ID: $("#ID").val(),
PSSWD: $("#PSSWD").val(),
ACCID: $("#ACCID").val(),
PASSWDINT: $("#PASSWDINT").val()
},
success: function (data) {
if (data == "success") {
jQuery('#dialog-AddCallRecording').dialog({ closeOnEscape: false });
$(".ui-dialog-titlebar").hide();
$("#dialog-AddCallRecording").dialog({ dialogClass: 'transparent', modal: true });
$("#dialog-AddCallRecording").dialog("open");
}
else {
jQuery("#dialog-user-login").dialog('option', 'position', 'center');
jQuery("#dialog-user-login").dialog("open");
}
}
});
我已经定义了verifyuser,它正在验证并显示正确的弹出窗口
它工作正常,但问题是当我设置断点时。我看到NewCallRecording总是很受欢迎。在那之后,verifyuser被击中。我想先检查verifyuser,然后在用户打开/NewCallRecording页面时点击NewCallRecording actionmethod
请建议我怎么做。验证用户调用是ajax,而NewCallRecording是控制器操作。如果直接调用该操作,它将在Ajax调用之前执行,因为actionresult加载DOM,在本例中为NewCallRedording
在这种情况下,我认为您还需要进行服务器端验证,如果用户未经验证,则将用户重定向到登录页面。在这种情况下,我是否应该删除ajax调用?另外,如果我让NewCallRecording actionmethod只是GEt操作的一个伪操作方法,并为POST创建另一个?但我需要得到我认为。。。我真的很困惑,如果您想在页面加载之后,在任何其他操作调用中验证用户,JAX是有用的。您可以进行虚拟操作调用,进行ajax验证,然后调用实际操作,但这似乎有点复杂。考虑用一个属性来装饰您的动作,它可以是一个动作过滤器,在动作执行之前验证用户。