【问题标题】:Setting the default value to a select list将默认值设置为选择列表
【发布时间】:2013-07-12 16:14:06
【问题描述】:

我有这个字符串列表:

public static readonly List<string> LIST_ITEM_STATE = new List<string>
{
    "Brand new",
    "Never used",
    "Slightly used",
    "Used",
    "Heavily used",
    "Damaged",
    "Ruined",
    "Run for your life"
};

我正在以这种方式在课堂上构建一个选择列表:

public string mItemState { get; set; }
public IEnumerable<SelectListItem> mItemStateList { get; set; }

mItemStateList = new SelectList(ValueDomain.LIST_ITEM_STATE);

而且,在我看来,我像这样渲染下拉列表:

Item State: @Html.DropDownListFor(_item => _item.mItemState, Model.mItemStateList, String.Empty)

下拉列表的作用就像一个魅力,但我一直在寻找方法来默认设置选定的值Brand New,同时保留String.Emtpty 选项。我怎么能这样做?

【问题讨论】:

  • 请不要在您的属性前加上m。这不仅是一个可怕的匈牙利符号的爆发,而且完全没有必要,因为 当然 属性是成员。
  • 那你有什么建议呢?这些是我们公司实施的实践,用于轻松区分成员、方法参数和内部方法变量。
  • 如果你的公司坚持在前缀是固有成员并且不能是其他任何东西,那么我建议你解雇编写标准的人。 :)

标签: c# asp.net-mvc html.dropdownlistfor selectlist


【解决方案1】:

我认为你必须这样做:

public static readonly List<string> LIST_ITEM_STATE = new List<string>
{
    string.Empty,
    "Brand new",
    "Never used",
    "Slightly used",
    "Used",
    "Heavily used",
    "Damaged",
    "Ruined",
    "Run for your life"
};

并在SelectList中设置选中的值:

 mItemStateList = new SelectList(ValueDomain.LIST_ITEM_STATE, "Brand new");

或者确保属性的值设置为你想要的初始值:

_item.mItemState = "Brand new";

【讨论】:

    【解决方案2】:

    像这样定义你的 SelectList:

    mItemStateList = new SelectList(ValueDomain.LIST_ITEM_STATE, mItemState);
    

    【讨论】:

      猜你喜欢
      • 2017-03-31
      • 2017-12-08
      • 1970-01-01
      • 1970-01-01
      • 2021-06-28
      • 2017-04-28
      • 1970-01-01
      • 2016-04-10
      • 1970-01-01
      相关资源
      最近更新 更多