【问题标题】:Filtering a MVC dropdownlist eleminating default values过滤去除默认值的 MVC 下拉列表
【发布时间】:2017-03-20 16:01:12
【问题描述】:

我正在使用 MVC 5.0 开发一个项目,我的代码是这样的。

<div class="form-group">
                    @Html.LabelFor(model => model.IsActive, "Status", new { @class = "control-label col-md-3  col-md-offset-1" })
                    <div class="col-md-5">
                        @Html.EditorFor(model => model.IsActive, new { htmlAttributes = new { @class = "form-control" } })
                        @Html.ValidationMessageFor(model => model.IsActive)
                    </div>
                </div>

它工作正常,但问题是它添加了一个额外的值“未设置”以及值“真”和“假”。如何从下拉列表中过滤“未设置”值。

谢谢 乌特帕尔

【问题讨论】:

  • 你不能。您为默认实现的 nullable bool 创建了 EditorFor() 方法 - 如果您不想允许 null - 将属性更改为 bool 并使用 @Html.CheckboxFor(model.IsActive)
  • 您的 IsActive 列是否可以保存空值?这通常会创建“未设置”
  • @Emil 是的,它是由实体框架生成的可为空的列。那么我的问题的出路是什么。
  • @Utpal 您可以更改模型以删除 IsActive 接受 null
  • @Emil 还有其他选择吗,因为我无权更改模型类

标签: asp.net asp.net-mvc twitter-bootstrap asp.net-mvc-4 asp.net-mvc-5


【解决方案1】:
<%= Html.DropDownList(
    model => model.IsActive, 
    new SelectList(
        new[] 
        { 
            new { Value = "true", Text = "Yes" },
            new { Value = "false", Text = "No" },
        }, 
        "Value", 
        "Text",
        Model
    )
) %>

试试这个

尝试在您的操作中设置 IsActive 的默认值

【讨论】:

    猜你喜欢
    • 2013-03-17
    • 2016-11-16
    • 2021-09-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多