Asp.net 模型提供的下拉占位符有问题
所以我有两个独立运作的案例 如果我知道下拉列表中有模型数据,我将使用此代码Asp.net 模型提供的下拉占位符有问题,asp.net,asp.net-mvc,html-helper,Asp.net,Asp.net Mvc,Html Helper,所以我有两个独立运作的案例 如果我知道下拉列表中有模型数据,我将使用此代码 @Html.DropDownListFor(model => model.CarID, (SelectList)ViewBag.Cars, htmlAttributes: new { @class = "form-control" }) 但是,问题在于,如果CarID为null,列表中的第一项将是下拉列表中的预选项 在另一种形式中,我使用这个: @Html.DropDownListFor(mode
@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);
只有在模型数据不存在的情况下才有占位符的地方,我可以使用其中的一种吗?在第二种方法中,您错误地使用了helper方法 应该是
@Html.DropDownListFor(model => model.CarID,(SelectList)ViewBag.Cars,
"Select one", new { @class = "form-control" })
如果没有任何内容是预先选择的model.CarID为null,则这将使用Select one选项作为第一个和默认项呈现下拉列表。如果Model.CarID具有有效值,它将选择相应的选项
如果您确实想在Model.CarID不为null时删除Select one,您可以编写一些javascript,在文档加载jQuery document ready上执行:检查所选选项并根据需要删除它。OHHHHHHHHHH gotcha!谢谢我这样用了很长时间了。。。不知道!嗯,事实上,我仍然有一个问题,它没有出现。使用我的enum seleectList,它可以正常工作,但使用这个它不工作。当我在其中选择一个时,它会显示,但它不显示。我的视图模型中已经有carID,但我的视图模型中没有Car Car类型。这可能是一个问题吗?因此,要使其正常工作,在控制器中创建新的选择列表时,是否必须将model.CarID作为最后一个参数?我现在遇到了一个问题,有些下拉列表不起作用,有些则起作用,但代码是相同的。当我在控制器上设置一个断点并检查它时,selectList的Selected值就在那里,但由于某种原因,它不会在视图中继续。