tes*_*ack 5 c# asp.net enums json
我有一个包含enum属性的类。
我的枚举:
public enum ToasterType
{
[EnumMember(Value = "success")]
success,
[EnumMember(Value = "error")]
error
}
Run Code Online (Sandbox Code Playgroud)
我的课 :
[Serializable]
public class ToastrMessage
{
[JsonConverter(typeof(StringEnumConverter))]
public ToasterType ToasterType { get; set; }
// bla bla bla
}
Run Code Online (Sandbox Code Playgroud)
通过Json返回课程:
public async Task<ActionResult> Authentication()
{
return Json(this.ToastrMessage(ToasterType.success));
}
Run Code Online (Sandbox Code Playgroud)
和输出:
为什么1呢?
但我需要以下内容:
ToasterType: success
Run Code Online (Sandbox Code Playgroud)
如果您只想使用StringEnumConverter当前操作,则可以在调用之前添加以下内容json()
//convert Enums to Strings (instead of Integer)
JsonConvert.DefaultSettings = (() =>
{
var settings = new JsonSerializerSettings();
settings.Converters.Add(new StringEnumConverter { CamelCaseText = true });
return settings;
});
Run Code Online (Sandbox Code Playgroud)
要全局应用该行为,只需在 Global.asax 或启动类中添加以下设置即可。
HttpConfiguration config = GlobalConfiguration.Configuration;
config.Formatters.JsonFormatter.SerializerSettings.Converters.Add
(new Newtonsoft.Json.Converters.StringEnumConverter());
Run Code Online (Sandbox Code Playgroud)