[json函数无法在MVC中使用以下代码运行

问题描述 投票:0回答:1

当从视图加载页面时,json函数未触发任何人,请帮助以下代码中的错误是什么。

索引视图中的脚本

 function Edit(UserID) {
        var url = "/User/GetUserbyID/" + UserID;
        $("#ModelTitle").html("Update Record");
        $("#MyModal").modal();

        $.ajax({
             type: "GET",
            url: url,
            success: function (data) {
               var obj = JSON.parse(data);
                $("#UserID").val(data.UserID);
                $("#userCode").val(data.UserCode);
                $("#userName").val(data.Name);
                $("#userAliasName").data(obj.AliasName);
                $("#userEmail").val(data.Email);
                $("#userGender").val(data.Gender);
                $("#userMobile").val(data.Mobile);
                $("#userCountryID").val(data.CountryID);
                $("#userDateOfBirth").val(data.DateOfBirth);
            }
       })
    }

控制器中的Json函数

  public JsonResult GetUserbyID(int UserID)
        {
            BOUser newBOUser = new TktServiceClient().GetUsers().Where(x => x.UserID ==UserID ).SingleOrDefault();
            string value = string.Empty;
            value = JsonConvert.SerializeObject(newBOUser, Formatting.Indented, new JsonSerializerSettings
            {
                ReferenceLoopHandling = ReferenceLoopHandling.Ignore
            });
            return Json(value, JsonRequestBehavior.AllowGet);

        }
json asp.net-mvc json.net asp.net-ajax
1个回答
0
投票

似乎您正在对数据进行双重序列化-一次使用SerializeObject方法,一次使用Json方法。您应该做一个或另一个,但不能两者都做。

由于您似乎担心参考循环,所以我会采用第一种方法。纠正的方法如下所示:

public ContentResult GetUserbyID(int UserID)
{
    BOUser newBOUser = new TktServiceClient().GetUsers()
                                             .Where(x => x.UserID == UserID)
                                             .SingleOrDefault();

    string value = JsonConvert.SerializeObject(newBOUser, new JsonSerializerSettings
    {
        ReferenceLoopHandling = ReferenceLoopHandling.Ignore,
        Formatting = Formatting.Indented
    });

    return Content(value, "application/json");
}
© www.soinside.com 2019 - 2024. All rights reserved.