0
IEnumerable<DeliveryRunRecord> deliveries = _deliveryRunService.GetAll();
List<SelectListItem> listOfDeliveryRuns = deliveries.Select(x => new SelectListItem
            {
                Value = x.Id.ToString(),
                Text = x.Name,
                Selected = "Select".ToString()
            }).ToList();

希望在选择下拉列表之前出现“选择”,但在单击时不可用,只允许用户选择交付中的值?

4

3 回答 3

0

I think you need another item for default selection like this:

(This approach requires System.Linq namespace to be included)

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);
于 2013-09-23T14:12:08.220 回答
0

SelectListItem 的Selected 属性是布尔类型,因此您不能分配字符串,它应该是 false 或 true。

但是您想要实现的目标可以简单地在视图中完成。@Html.DropDownList("dropdown1", new SelectList(ViewBag.deliveries , "Value", "Text", 0 ), "请选择", new { onchange = "form.submit();" })

注意 DropDownList 方法的第四个参数,它是

我希望这有帮助。

于 2015-02-20T20:09:04.430 回答
0

您可能也可以在 .cshtml 中执行您要求的操作。

@Html.DropDownList("DeliveryId", new SelectList(ViewBag.deliveries as System.Collections.IEnumerable, "Key", "Value"), "--Select--")

上面将显示下拉列表,默认选择“--Select--”作为项目。我刚刚复制了一个示例,该示例将字典与您的项目值一起使用,并通过 ViewBag 作为参数传入。

于 2013-09-24T02:35:46.547 回答