IEnumerable<DeliveryRunRecord> deliveries = _deliveryRunService.GetAll();
List<SelectListItem> listOfDeliveryRuns = deliveries.Select(x => new SelectListItem
{
Value = x.Id.ToString(),
Text = x.Name,
Selected = "Select".ToString()
}).ToList();
希望在选择下拉菜单之前显示“选择”,但在点击时不会显示,只允许用户选择交付中的值?
答案 0 :(得分:0)
我认为您需要另一个默认选择项目,如下所示:
(此方法需要包含System.Linq命名空间)
SelectListItem defaultItem = new SelectListItem
{
Selected = true,
Text = "Select",
Value = "NONE"
};
List<SelectListItem> listOfDeliveryRuns = deliveries
.Select(x => new SelectListItem
{
Value = x.Id.ToString(),
Text = x.Name,
Selected = false
})
.ToList()
.Insert(0, defaultItem);
答案 1 :(得分:0)
您可能也可以在.cshtml中执行您要求的操作。
@Html.DropDownList("DeliveryId", new SelectList(ViewBag.deliveries as System.Collections.IEnumerable, "Key", "Value"), "--Select--")
上面将显示下拉列表,其中“--Select--”作为默认选择的项目。我刚刚复制了一个使用带有项值的Dictionary的示例,并通过ViewBag作为参数传入。
答案 2 :(得分:0)
Selected Property是布尔类型,因此您不能指定字符串,它应该是false或true。
但是您想要实现的目标可以在视图上完成。 @ Html.DropDownList(&#34; dropdown1&#34;,新的SelectList(ViewBag.deliveries,&#34; Value&#34;,&#34; Text&#34;, 0 ),& #34;请选择&#34;,new {onchange =&#34; form.submit();&#34;})
注意DropDownList方法的第四个参数,它零。
我希望这会有所帮助。