模型的问题为下拉列表提供了占位符

时间:2017-01-12 17:56:58

标签: asp.net asp.net-mvc html-helper

所以我有两个独立工作的案例。

如果我知道下拉列表中有模型数据,我会使用此代码。

        @Html.DropDownListFor(model => model.CarID, (SelectList)ViewBag.Cars, htmlAttributes: new { @class = "form-control" })

但是,如果CarIDnull @Html.DropDownListFor(model => model.CarID, "--Select a Car--", (SelectList)ViewBag.Cars, htmlAttributes: new { @class = "form-control" }) 列表中的第一项将在下拉列表中预先选中,则问题就出现了。

另一种形式,我用这个:

    ViewBag.Cars = new SelectList(db.Units, "CarID", "Name", model.CarID);

我的控制器有此提供视图数据:

$('.spant').on('click', function(e) {
    var string = "";
    var spans = $(this).prevAll().each(function(i, v){ string +=  v.outerHTML + "\n"; });
    string += this.outerHTML;
    alert(string);
});

如果没有模型数据来填充现场,我是否可以使用其中一个只有占位符的地方?

1 个答案:

答案 0 :(得分:1)

在您的第二种方法中,您正在错误地使用辅助方法

应该是

@Html.DropDownListFor(model => model.CarID,(SelectList)ViewBag.Cars,
                                           "Select one", new { @class = "form-control" })

这将使用"选择一个"呈现下拉列表。如果未选择任何内容(model.CarIDnull),则选项为第一个(和默认项)。如果Model.CarID具有有效值,则会选择相应的选项。

如果你绝对想要删除"选择一个"当Model.CarID不为空时,您可以编写一些在文档加载(jQuery document ready :)上执行的javascript来检查所选选项并根据需要将其删除。