在我的客户端,我有一个类似下面的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;
}
}
});
在控制器中,我有一个像这样的方法:
[HttpPost]
public JsonResult ListResult(string Id, string SessionKey)
{
IBl biz = new BL();
var result = biz.GetResults(Id,SessionKey);
return Json(result);
}
这个问题是由于控制器返回的对象中有枚举属性(它们的值是字符串表示形式),然而,当它到达ajax调用中的success函数时,枚举不再是字符串表示形式,而是已经转换为它们的整数值。我该如何避免这种情况?并保留javascript端的字符串表示形式。
sessionManager.getSessionKey()
是什么? - user3559349ToString()
方法(JavascriptSerializer
序列化枚举时会将其序列化为数字值而不是字符串表示)。 - user3559349[JsonConverter(typeof(StringEnumConverter))]
特性,同时使用Json.NET来进行转换。 - user3559349