gpt4 book ai didi

javascript - Ajax e Asp.net MVC 返回 "result is undefined"

转载 作者:行者123 更新时间:2023-12-01 04:00:17 25 4
gpt4 key购买 nike

Javascript:

$(function () {
$("#btEmail").click(function () {
var name = $("#username").val();

$.post("@Url.Action("SearchUserByUsername", "LogonWorkFlow")", { username: name }, function (result) {
var r = result;

});
});
});

Controller MVC:

[HttpPost]
public ActionResult SearchUserByUsername(string username)
{
return Json(GetUserByEmail(username), JsonRequestBehavior.AllowGet);
}

public async Task<JsonResult> GetUserByEmail(string email)
{
var u = await userManager.FindByEmailAsync(email);

var user = new { mail = u.Email, n = u.FullName };

return Json(user, JsonRequestBehavior.AllowGet);
}

请求通常通过函数传递,但返回总是空

最佳答案

您不是在重新调整字符串,而是在返回一个任务。 JSON 序列化程序不知道如何处理,并且没有有意义的字符串表示形式可返回给客户端。 SearchUserByUsername 也应该是async。像这样的东西:

public async Task<ActionResult> SearchUserByUsername(string username)
{
return Json(await GetUserByEmail(username), JsonRequestBehavior.AllowGet);
}

这样它就可以等待GetUserByEmail的调用,这是异步

<小时/>

尽管由于 GetUserByEmail 已经 返回 JsonResult 你可以(并且可能应该)简化:

public async Task<ActionResult> SearchUserByUsername(string username)
{
return await GetUserByEmail(username);
}

当然,此时就引出了一个问题:为什么您首先确实需要 SearchUserByUsername 操作,因为它只是对现有操作的传递。

关于javascript - Ajax e Asp.net MVC 返回 "result is undefined",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42250060/

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