gpt4 book ai didi

javascript - 将枚举序列化为 const JsonNet

转载 作者:行者123 更新时间:2023-11-29 18:26:02 27 4
gpt4 key购买 nike

我正在使用 Asp MVC 3 应用程序。

我有一个枚举:

public enum EmployeesOptions
{
John = 1,
Peter = 2,
Andrew = 3
}

还有一个 MyViewModel

   public class MyViewModel
{
public MyViewModel()
{
Employees = new List<EmployeesOptions>()
{
EmployeesOptions.John,
EmployeesOptions.Peter,
EmployeesOptions.Andrew
};
}

public IEnumerable<EmployeesOptions> Employees { get; set; }
}

我的 Controller :

public ActionResult Index()
{
var vm = new MyViewModel();
return View(vm);
}

在我的索引 View 中:

@model MyViewModel

<script type="text/javascript">
var jsonString = '@Html.Raw(Newtonsoft.Json.JsonConvert.SerializeObject(this.Model))';

var data = ko.mapping.fromJSON(jsonString);
omega.franchiseInfo = ko.mapping.fromJS(data);
</script>

我来自服务器的序列化数据如下所示:

    Emplyees:[1,2,3]

我想成为这样的人:

Emplyees:["John","Peter","Andrew"]

我错过了什么?

更新:

var jsonString = '@Html.Raw(Newtonsoft.Json.JsonConvert.SerializeObject(this.Model, Newtonsoft.Json.Formatting.None, new Newtonsoft.Json.Converters.StringEnumConverter()))';

完成任务!

最佳答案

如果您希望此枚举类型始终使用其字符串值进行序列化,您可以使用JsonConverter 属性和StringEnumConverter 对其进行修饰像这样上课:

using Newtonsoft.Json;
using Newtonsoft.Json.Converters;

[JsonConverter(typeof(StringEnumConverter))]
public enum EmployeesOptions
{
John = 1,
Peter = 2,
Andrew = 3
}

那么您就不需要再在序列化器选项中指定任何转换器类了。

关于javascript - 将枚举序列化为 const JsonNet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13071788/

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