【问题标题】:@Html.DropDownListFor how to set default value [duplicate]@Html.DropDownListFor 如何设置默认值[重复]
【发布时间】:2014-07-11 00:49:32
【问题描述】:
@Html.DropDownListFor(model => model.Status, new List<SelectListItem> 
       { new SelectListItem{Text="Active", Value="True"},
         new SelectListItem{Text="Deactive", Value="False"}})

鉴于我正在使用这个 drop dowenlist 编码。我运行我的应用程序默认停用值显示在下拉列表框中。我想显示默认 Active

【问题讨论】:

  • 我希望 Status 是 boolean 类型。默认情况下,ddl 值设置为“Deactivate”,因为 boolean 默认值为“false”。将 Status 设为可选或将其类型转换为 int 并将值设置为 1/0 而不是 true/false
  • @Html.DropDownListFor(model => model.Status, new List { new SelectListItem{Text="Active", Value="1",Selected =true}, new SelectListItem{Text ="Deactive", Value="0"}}) 它工作正常
  • 这段代码只传值 false
  • Eshan 的解决方案工作正常吗?

标签: c# asp.net-mvc razor dropdownbox


【解决方案1】:

像这样:

@Html.DropDownListFor(model => model.Status, new List<SelectListItem> 
       { new SelectListItem{Text="Active", Value="True"},
         new SelectListItem{Text="Deactive", Value="False"}},"Select One")

如果您希望默认选中 Active,则使用 SelectListItemSelected 属性:

@Html.DropDownListFor(model => model.Status, new List<SelectListItem> 
           { new SelectListItem{Text="Active", Value="True",Selected=true},
             new SelectListItem{Text="Deactive", Value="False"}},"Select One")

如果使用SelectList,则必须使用this overload 并指定要设置为选中的SelectListItem Value 属性:

@Html.DropDownListFor(model => model.title, 
                     new SelectList(new List<SelectListItem>
  {
      new SelectListItem { Text = "Active" , Value = "True"},
      new SelectListItem { Text = "InActive", Value = "False" }
  },
    "Value", // property to be set as Value of dropdown item
    "Text",  // property to be used as text of dropdown item
    "True"), // value that should be set selected of dropdown
     new { @class = "form-control" })

【讨论】:

  • 我认为这行不通。 stackoverflow.com/questions/23610941/…
  • 我先在我的系统上测试然后发布
  • @malkam 我使用 0 和 1 而不是 true/false 并且它有效,但是每当我提交表单时,即使我尝试发送 true/,发送的值也是 False 1.帮帮我
  • @EhsanSajjad:好吧,其实我忽略了。我使用过 SelectList,但您使用的是 List
  • 是的,你是对的,我也注意到了
【解决方案2】:

SelectListItem 有一个 Selected 属性。如果您是动态创建SelectListItems,您可以将您想要的设置为Selected = true,然后它将成为默认值。

SelectListItem defaultItem = new SelectListItem()
{
   Value = 1,
   Text = "Default Item",
   Selected = true
};

【讨论】:

    【解决方案3】:
     @Html.DropDownListFor(model => model.UserName, new List<SelectListItem> 
       { new SelectListItem{Text="Active", Value="True",Selected =true },
         new SelectListItem{Text="Deactive", Value="False"}})
    

    【讨论】:

      【解决方案4】:
       @Html.DropDownListFor(model => model.Items, new List<SelectListItem>
         { new SelectListItem{Text="Deactive", Value="False"},
           new SelectListItem{Text="Active", Value="True",  Selected = true},
           })
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-12-22
        相关资源
        最近更新 更多