Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 模型提供的下拉占位符有问题_Asp.net_Asp.net Mvc_Html Helper - Fatal编程技术网

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值就在那里,但由于某种原因,它不会在视图中继续。