gpt4 book ai didi

c# - Ajax 成功函数返回空数据

转载 作者:行者123 更新时间:2023-11-30 13:57:40 24 4
gpt4 key购买 nike

我正在尝试通过 ajax 导航我的请求。

当用户通过身份验证时,它会转到另一个 ajax 成功函数的 url -

success:function(data,result)
{
window.location.url='@Url.Action("Home","Index");
}

我的 Controller 是-

 public void _LoginPartial(LoginModel login) {
try {

var system = (from u in db.RegisterLedgers
where u.EmailID == login.EmailID && u.RegisteredPassword == login.PaSsWoRd
select u).FirstOrDefault();
if (system != null) {

Session["LoggedInUser"] = system;
FormsAuthentication.SetAuthCookie(system.RegisteredName, false);
}
}
catch (Exception ex) {
ModelState.AddModelError("", ex);
}
}

Ajax 查询是-

<script type="text/javascript">
$(function () {
$('#Login-button').click(function () {
$.ajax({
url: '/loginledger/_loginpartial/',
data: $('#form-loginpartial').serialize(),
type: 'post',
success: function (data, result) {
alert(result);
alert(data);
},
error: function () {
alert("Form couldn't be submitted");
}

});

});

});

</script>

显示ajax查询成功,但数据为空。我在服务器端检查了这个请求,它从数据库中提取了记录。

为什么我在 ajax 成功函数中得到空结果?我在这里做错了什么?

最佳答案

What did I do wrong here?

您的 Controller 操作似乎没有返回任何内容。这只是一个 void。在 ASP.NET MVC Controller 中,操作必须返回 ActionResults。

例如,您可以使用 JsonResult

public ActionResult _LoginPartial(LoginModel login) 
{
try
{
var system =
(from u in db.RegisterLedgers
where u.EmailID == login.EmailID && u.RegisteredPassword == login.PaSsWoRd
select u).FirstOrDefault();

if (system != null)
{
Session["LoggedInUser"] = system;
FormsAuthentication.SetAuthCookie(system.RegisteredName, false);
return Json(new { success = true; });
}
}
catch (Exception ex)
{
ModelState.AddModelError("", ex);
}

return Json(new { success = false; });
}

您可以在 AJAX 成功回调中查看:

success: function (data) {
alert(data.success);
}

关于c# - Ajax 成功函数返回空数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20217211/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com