gpt4 book ai didi

c# - ASP.NET MVC 在 jquery DataTables 中显示 Enum 列的文本?

转载 作者:行者123 更新时间:2023-11-30 14:49:24 26 4
gpt4 key购买 nike

我应该如何在 jQuery DataTable 中显示枚举列中的文本而不是它的值,而不丢失它的值,因为我稍后将使用它进行编辑?

给定一个:

 public class Person
{
[Key]
public int PersonUID { get; set; }

public string FirstName { get; set; }
public EstadoPersona Status { get; set; }
}

还有一个枚举:

 public enum EstadoPersona
{
Active, Inactive
}

我正在使用 Controller 中的以下操作填充 jQuery DataTable:

  public ActionResult List()
{
var data = db.People.Select(
a => new
{
a.FirstName,
a.Status,
a.PersonUID
}).OrderByDescending(a => a.PersonUID).ToList();

return Json(data, JsonRequestBehavior.AllowGet);
}

这是我的 DataTable 设置:

$("#tblPersons").DataTable({
processing: true,
dom: 'Brtip',
ajax: {
type: "POST",
url: "/People/List",
dataType: "json",
contentType: "application/json; charset=utf-8",
data: function (data) {
return data = JSON.stringify(data);
},
dataSrc: "",
error: function (jqXHR, textStatus, errorThrown) {
debugger; alert("ajax error: " + textStatus);
}
},
columns: [
{data: "FirstName" },
{ data: "Status"},
{ data: "PersonUID" }
],
rowId: 'PersonUID',
},
order: [],
});

最佳答案

使用 Json.Net http://www.newtonsoft.com/json并为枚举类型列装饰以下属性

public class Person
{
[Key]
public int PersonUID { get; set; }

public string FirstName { get; set; }

[JsonConverter(typeof(StringEnumConverter))]
public EstadoPersona Status { get; set; }
}

将值发布为 {"Status":"Active"}{"Status":"InActive"} 而不是 {"Status":0}{"Status":1}

关于c# - ASP.NET MVC 在 jquery DataTables 中显示 Enum 列的文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38797753/

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