加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 为视图创建或数据库存储定义选择/下拉选项的最佳实践方法

发布时间:2020-12-15 08:24:39 所属栏目:百科 来源:网络整理
导读:我还不确定最佳方式来存储前端显示或数据库存储的选择列表选项. 我一直在使用Enums,也使用描述装饰器(How do you create a dropdownlist from an enum in ASP.NET MVC?) 我现在想我也可以为这些东西创建一个完整的类,所以我可以完全控制地存储以下信息: 项
我还不确定最佳方式来存储前端显示或数据库存储的选择列表选项.

我一直在使用Enums,也使用描述装饰器(How do you create a dropdownlist from an enum in ASP.NET MVC?)

我现在想我也可以为这些东西创建一个完整的类,所以我可以完全控制地存储以下信息:

>项目名称
>完整描述
> int用于存储在db中
>订单
>从列表中获取信息的任何方法.

是不是我应该考虑用手自己实现这一切?我想要一个非常可靠的方法来做到这一点,并且一个enum并不真的觉得它会削减它.

解决方法

Is it right I should be thinking about implementing all this myself by
hand?

是.枚举通常是leaky and insufficient abstractions,并不总是适合您实际希望表示的复杂域模型.

您可能需要考虑Headspring的Enumeration类(通过github,nuget),而不是自己动手.我们一直使用它而不是枚举,因为它几乎一样简单,而且更灵活.

“状态”枚举的一个示例,并将其用作选择列表:

public class State : Enumeration<State>
{
    public static State Alabama = new State(1,"AL","Alabama");
    public static State Alaska = new State(2,"AK","Alaska");
    // .. many more
    public static State Wyoming = new State(3,"WY","Wyoming");

    public State(int value,string displayName,string description) : base(value,displayName)
    {
        Description = description;
    }

    public string Description { get; private set; }
}

public IEnumerable<SelectListItem> Creating_a_select_list(State selected)
{
    return State.GetAll().Select(
        x => new SelectListItem
        {
            Selected = x == selected,Text = x.Description,Value = x.Value.ToString()
        });
}

我不是想在这个特定的实现上卖给你,你当然可以自己编写代码(Enumeration类只有大约100行代码).但我绝对认为你会从超越基本的枚举中受益.根据您在问题中描述的方案,这是正确的方法.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读