簡體   English   中英

Ajax e Asp.net MVC返回“結果未定義”

[英]Ajax e Asp.net MVC return “result is undefined”

Javascript:

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

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

        });
    });
});

控制器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);
        }

該請求通常通過函數傳遞,但返回始終為空

您沒有在重新調整字符串,而是在返回一個task 哪個JSON序列化程序不知道該怎么做,以及哪個沒有有意義的字符串表示形式返回給客戶端。 SearchUserByUsername也應該是async 就像是:

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

這樣,它可以等待async GetUserByEmail的調用。


盡管由於GetUserByEmail 已經返回了JsonResult您可以(可能應該)簡化:

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

當然,在這一點上,這引出了一個問題,即為什么您真的真正需要SearchUserByUsername操作,因為這只是現有操作的傳遞。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM