当从视图加载页面时,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);
}
似乎您正在对数据进行双重序列化-一次使用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");
}