在此代码中,AJAX 无法响应。如果它没有运行代码"where are.Email == lsEmail && r.Password == lsPassword",则 AJAX 运行成功。
如果添加代码"where are.Email == lsEmail && r.Password == lsPassword",则 AJAX ".done(function(data(..("无法接受任何成功消息。
问题应该出在LINQ哪里,很奇怪。AJAX 不能与 LINQ 一起使用吗?还是Microsoft错误?
$('#login-submit').click(function() {
var lsEmail = $("#email").val().trim();
var lsPassword = $("#password").val().trim();
if (lsEmail == "") {
alert("Email Cannot be blank!");
return false;
}
if (lsPassword == "") {
alert("Email Cannot be blank!");
return false;
}
var data = {
lsEmail: lsEmail,
lsPassword: lsPassword
};
var url = "/Home/ClientLogin";
$.ajax({
url: url,
type: 'POST',
data: data
}).done(function(data) {
if (data == "1") {
window.location.href = "/Home/Index";
} else if (data == "2") {
window.location.href = "/Home/Error";
}
}).fail(function(jqXHR, textStatus, errorThrown) {
alert(jqXHR.status);
alert(textStatus);
alert(errorThrown);
});
});
public ActionResult ClientLogin(string lsEmail, string lsPassword)
{
int liNum;
liNum = 0;
try
{
var lzClientUser = from r in db.ClientUser
where r.Email == lsEmail && r.Password == lsPassword
select r;
var lzClientUserNum = lzClientUser.ToList();
liNum = lzClientUserNum.Count();
}
catch (Exception ex)
{
Console.WriteLine("nErrMsg:{0}n", ex.Message);
Console.WriteLine(ex.ToString());
}
// Login Success
if (liNum > 0)
{
Session["LoginEMail"] = lsEmail;
return Content("1");
}
else
{
return Content("2");
}
}
为了更好地理解 ajax 响应中的操作结果,您需要返回 json 结果而不是内容结果。