【问题标题】:How to store DropDownListfor Text field value in Database?如何在数据库中存储 DropDownListfor Text 字段值?
【发布时间】:2014-10-15 16:51:32
【问题描述】:

我正在使用 MVC4 和 Umbraco 7.1.8 开发 Umbraco 站点。我创建了一个模型、一个控制器和一个局部视图。 我有一个下拉列表,当用户在该下拉列表中选择值时,它应该存储该文本字符串。它存储索引而不是文本。下面是我的代码。

我的模型:-

    public class PhoneType
    {
        public int typeid { get; set; }
        public string Value { get; set; }
    }

    public IEnumerable<PhoneType> PhonetypeOptions =
    new List<PhoneType>
    {
        new PhoneType {typeid = 0, Value = "Mobile"},
        new PhoneType {typeid = 1, Value = "Home"},
        new PhoneType {typeid = 2, Value = "Office"}
    };


    [Required, Display(Name = "Phone Number Type")]
    public string PhoneNumberType { get; set; }

我的部分视图 Html:-

<div class="fieldWrapper">
            @Html.LabelFor(m => m.PhoneNumberType)
            @Html.DropDownListFor(m => m.PhoneNumberType, new            SelectList(Model.PhonetypeOptions,"typeid","Value",Model.PhonetypeOptions.First().typeid))
            @Html.ValidationMessageFor(m => m.Email, "Please Enter Email", new {@class = "error"})
        </div>

我的控制器代码:-

       member.getProperty("phoneNumberType").Value = model.PhoneNumberType;

现在当我提交表单并签入数据库时​​,电话号码类型是索引而不是文本字符串。

你能帮我解决这个问题吗?

提前感谢您的回复。

【问题讨论】:

  • 那么您的期望是什么,将 id 发送到您的服务器是常见的方式
  • 但是当你存储下拉值时它应该是文本字符串,但是在数据库中我得到了索引。
  • 如果您重命名该值,该值将如何帮助您,如果不是,它是您想要的 id,那么目的是什么。如果您不希望索引将值放在列表的两侧
  • 好吧,让我试试吧.. 我刚开始在 mvc 中工作。我是新蜜蜂所以我找到了这个例子并按照它制作。感谢您的回复。

标签: c# asp.net-mvc-4 umbraco7


【解决方案1】:

就像我解释的 cmets 一样,在您的数据库中插入 id 是有意义的。

如果您决定重命名一个值,您将遇到麻烦。

如果您真的想存储文本值,只需将该值作为 id 重复即可。

public class PhoneType
{
    public string typeid { get; set; }
    public string Value { get; set; }
}

public IEnumerable<PhoneType> PhonetypeOptions =
new List<PhoneType>
{
    new PhoneType {typeid = "Mobile", Value = "Mobile"},
    new PhoneType {typeid = "Home", Value = "Home"},
    new PhoneType {typeid = "Office", Value = "Office"}
};

但同样,将其保存为 Id 更有意义。

【讨论】:

  • @rsuthar,您也可以使用SelectList(Model.PhonetypeOptions, "Value", "Value", ....,但正如 meda 所说,如果您不打算使用它,为什么还要拥有 ID 属性。参考Database normalization
猜你喜欢
  • 2010-10-21
  • 1970-01-01
  • 2011-07-17
  • 1970-01-01
  • 1970-01-01
  • 2022-06-18
  • 1970-01-01
  • 1970-01-01
  • 2012-03-29
相关资源
最近更新 更多