【发布时间】:2019-07-12 08:28:45
【问题描述】:
我有一个 .NET Web API,我的一个 API 方法采用“状态”参数。
在我的代码中,我有一个具有各种状态值的枚举 (MyStatusEnum),但是,我不希望我们 API 的用户提供任何 那些 值。相反,我希望他们提供一个更简单的状态值,最终映射到我们的一个(或多个)基础状态枚举值。
例如,我的 API 的用户必须提供状态值“InProgress”或“Completed”,但我希望模型绑定将“InProgress”映射到 MyStatusEnum 数组,其中的值被视为为“InProgress”,同样为“Completed”。
public enum MyStatusEnum
{
StartedStepA = 1, // InProgress
StartedStepB = 2, // InProgress
StartedStepC = 3, // InProgress
FinishedStepA = 4, // Completed
FinishedStepB = 5, // Completed
FinishedStepC = 6 // Completed
}
public class ApiInputModel
{
public MyStatusEnum[] Status {get; set;}
}
所以在这个例子中,如果他们提供了 Completed 的状态值,我希望我的模型的 MyStatsEnum(数组)属性包含 FinishedStepA、FinishedStepB 和 FinishedStepC。
【问题讨论】:
-
你看this answer了吗?解决方案是让您的序列化程序将字符串值映射到您的枚举属性。只需将您的
Status属性归因即可。
标签: c# asp.net-web-api model-binding