首页 > 解决方案 > 在 http 请求上将字符串转换为枚举并自动设置

问题描述

我总是可以去做这里提到的事情。使用Enum.TryParse 但是我正在做的是将一个字符串传递给请求。然后在我的 Enum 类型的控制器上创建一个局部变量,以便我可以将 Enum 类型传递给我的服务方法以执行任务。我觉得如果我可以直接将它转换为请求的 set 属性上的 Enum 类型,那就太好了。

这是我目前拥有的:

public enum SearchSortType
{
    None,
    Rating,
    Date,
    Etc
}

[DataContract]
public class MyRequest
{
    /// <summary>
    /// The field to order on. 
    /// </summary>
    /// <value>
    /// The order by.
    /// </value>
    [DataMember(Name = "sortOn")]
    public string SortOn { get; set; }
}

我想要的是跟随。我将继续从请求中发布字符串。

[DataContract]
public class MyRequest
{
    /// <summary>
    /// The field to order on.
    /// </summary>
    /// <value>
    /// The order by.
    /// </value>
    [DataMember(Name = "sortOn")]
    public SearchSortType SortOn { get; set; }

}

是否可以继续传递字符串并将其转换为 set 属性(或以任何其他方式转换为枚举,以便我不必创建局部变量并转换然后使用它?

标签: c#asp.netasp.net-web-api

解决方案


枚举是一种独特的类型,由一组称为枚举数列表的命名常量组成。您可以在请求中传递枚举,并在 Web api 上具有同名的枚举属性,.net 模型绑定器将自动将其绑定到枚举。在请求中发送枚举时,它将作为 Int 发送。


推荐阅读