【发布时间】:2015-08-23 08:03:27
【问题描述】:
我有一个在 javascript 级别使用 Angular 的 MVC Web 应用程序。我正在尝试使用与此类似的对象发出 HTTP 请求:
public class Template
{
public string Id { get; set; }
//other properties
public Enum Status { get; set; } //can be either of type InboundEnum or OutboundEnum
}
问题是我有两种可能的Enum 类型(一种称为InboundEnum,一种称为OutboundEnum)。通常,当我使用 Angular 的 $http.post() 时,请求会正确地将其他 JSON 转换为正确的 Enum 值,因为它具有特定的 Enum(如 InboundEnum)。
两个Enums:
public enum InboundEnum
{
Undefined = 0,
Deleted,
Saved,
Pending,
Completed,
Cancelled
};
public enum OutboundEnum
{
Undefined = 0,
Deleted,
Saved,
Rejected,
InTransit,
Completed,
Cancelled
};
目前,我发送的 javascript 对象如下所示:
{
id: 'Id001`,
status: 'Saved' //I know it's currently ambiguous which enum to use. Solution?
}
如何将正确键入的值输入 MVC API 控制器(如 InboundEnum.Saved 或 OutboundEnum.Canceled)?有没有比附加Template.EnumType 属性和使用switch 语句来获得正确的Enum 更优雅的方式来处理Enum 的正确类型?
如果我在这里有反模式,请也告诉我。
【问题讨论】:
标签: c# asp.net-mvc angularjs enums