所以我有两个独立工作的案例。
如果我知道下拉列表中有模型数据,我会使用此代码。
@Html.DropDownListFor(model => model.CarID, (SelectList)ViewBag.Cars, htmlAttributes: new { @class = "form-control" })
但是,如果CarID
为null
@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);
});
如果没有模型数据来填充现场,我是否可以使用其中一个只有占位符的地方?
答案 0 :(得分:1)
在您的第二种方法中,您正在错误地使用辅助方法
应该是
@Html.DropDownListFor(model => model.CarID,(SelectList)ViewBag.Cars,
"Select one", new { @class = "form-control" })
这将使用"选择一个"呈现下拉列表。如果未选择任何内容(model.CarID
为null
),则选项为第一个(和默认项)。如果Model.CarID
具有有效值,则会选择相应的选项。
如果你绝对想要删除"选择一个"当Model.CarID
不为空时,您可以编写一些在文档加载(jQuery document ready :)上执行的javascript来检查所选选项并根据需要将其删除。