我在使用mvc3和jquery开发的应用程序的登录屏幕中遇到了一个问题,因为我正在编写用于检查控制器中的登录凭据的代码,并且该控制器事件是通过clciking开发的buttoon click来触发的使用jquery。我想在登录凭据正确时浏览其他页面('/ Customer / CollaborationPortal'),否则我想显示消息框,说明“凭据错误”,这是我的代码。
JQuery代码
$("#btnGo").click(function (e) {
var RegData = getRegData();
if (RegData === null) {
console.log("Specify Data!");
return;
}
$.ajax(
{
url: '/Registration/IsLoginExsit',
type: 'POST',
dataType: 'json',
data: JSON.stringify(RegData),
contentType: 'application/json; charset=utf-8',
success: function (response) {
//window.location.href('/Customer/CollaborationPortal');
Console.Log("success");
error: function () {
//aler('Login error');
Console.Log("error");
}
}
});
});
function getRegData() {
var UserName = $("#txtUserName").val();
var Password = $("#txtPassword").val();
return { "UserName": UserName, "Password": Password };
}
});
控制器代码
public ActionResult IsLoginExsit(BAMasterCustomerDO loginData)
{
if (!string.IsNullOrEmpty(loginData.UserName) && !string.IsNullOrEmpty (loginData.Password))
{
bool result = Businesss.Factory.BusinessFactory.GetRegistration().IsLoginExist(loginData.UserName, loginData.Password);
if (result)
{
System.Web.HttpContext.Current.Session["UserName"]=loginData.UserName;
return RedirectToAction("/Customer/CollaborationPortal");
}
else
{
ViewData["message"] = "Registration failed";
return View();
}
}
return View();
}
并且它没有进入“成功”和“错误”代码。
提前致谢。
答案 0 :(得分:0)
你已在成功回调中指定了错误回调,将其移到外面,如:
$.ajax(
{
url: '/Registration/IsLoginExsit',
type: 'POST',
dataType: 'json',
data: JSON.stringify(RegData),
contentType: 'application/json; charset=utf-8',
success: function (response) {
//window.location.href('/Customer/CollaborationPortal');
console.log("success");
},
error: function () {
//alert('Login error');
console.log("error");
}
});
答案 1 :(得分:0)
您在成功功能中有错误功能....
这就是你必须拥有的东西:
$.ajax(
{
url: '/Registration/IsLoginExsit',
type: 'POST',
dataType: 'json',
data: JSON.stringify(RegData),
contentType: 'application/json; charset=utf-8',
success: function (response) {
//window.location.href('/Customer/CollaborationPortal');
Console.Log("success");
},
error: function () {
//aler('Login error');
Console.Log("error");
}
});
答案 2 :(得分:0)
如果我是你,我会像这样向客户端返回一个JSON对象:
成功:
{
'error' : false,
'redirect' : '/Customer/CollaborationPortal',
'message' : ''
}
错误:
{
'error' : true,
'redirect' : false,
'message' : 'Please do this or that'
}
我的jQuery将是:
$.ajax(
{
url: '/Registration/IsLoginExsit',
type: 'POST',
dataType: 'json',
data: JSON.stringify(RegData),
contentType: 'application/json; charset=utf-8',
success: function (response) {
if (response.error)
{
alert(response.message);
return;
}
window.location.pathname = response.redirect;
}
});