gpt4 book ai didi

c# - JsonResults 返回枚举值而不是字符串表示

转载 作者:太空狗 更新时间:2023-10-30 00:18:16 27 4
gpt4 key购买 nike

在我的客户端,我有一个如下所示的 ajax 调用:

          $.ajax({
url: "Controller/ListResult",
type: 'POST',
contentType: "application/json;charset=utf-8",
data: JSON.stringify({
Id: ObjectId,
SessionKey: sessionManager.getSessionKey()
}),
dataType: "json",
success: function (result) {
var test = results;
}
}
});

在 Controller 中我有一个这样的方法:

      [HttpPost]
public JsonResult ListResult(string Id, string SessionKey)
{
IBl biz = new BL();
var result = biz.GetResults(Id,SessionKey);
return Json(result);
}

问题 是因为 Controller 返回 是一个具有Enum 属性(以字符串表示形式作为值)的对象。然而,当它到达 ajax 调用中的success function 时,枚举不再是字符串表示,相反,它们已被转换为它们的 int 值(value)观。我怎样才能避免这种情况?并将字符串表示形式保留在 javascript 端。

最佳答案

不是返回 var result 创建一些结果实体类,你可以用 StringEnumConverter 标记那里的枚举属性.

class Result
{
[JsonConverter(typeof(StringEnumConverter))]
public EnumType EnumProperty { get; set; }

*****other properties goes here****
}

正如 Stephen 所建议的那样,如果使用 Json.NET 作为序列化程序,这将起作用。

关于c# - JsonResults 返回枚举值而不是字符串表示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40393393/

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