javascript - 将 enum 序列化为 const JsonNet

标签 javascript asp.net-mvc-3 serialization enums json.net

我正在使用 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 - 将 enum 序列化为 const JsonNet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13071788/

相关文章:

java - 为什么在java中使用 `transient`关键字?

c# - serializedObject FindProperty 返回 null

javascript - 将 Handsontable 单元绑定(bind)到复杂对象

asp.net-mvc-3 - Webforms 应用程序路由内的 MVC3 应用程序在 IIS7.5 中引发 HttpContext.SetSessionStateBehavior 错误

python - Django DRY 模型/表单/序列化程序验证

C# - 何时使用 public int virtual,何时仅使用 public int

asp.net mvc 和 sql 查询

javascript - JavaScript 中子字符串的行为存在明显问题

javascript - 在获取期间处理对象返回 'undefined'

javascript - 是否可以知道我的访客是否登录了 Facebook?