ASP.NET MVC thả xuống với tùy chọn trống mặc định


Câu trả lời:


129

Bên dưới sẽ thêm string.Empty vào SelectList (hoặc IEnumerable) được chỉ định trong mục ViewData ["Menu"]. Lựa chọn sẽ có id và tên MenuID.

<%= Html.DropDownList( "MenuID",
                      (IEnumerable<SelectListItem>)ViewData["Menu"],
                      string.Empty ) %>

Tài liệu: Phương pháp DropDownList


13
Cảm ơn. Tên tham số của optionLabel cho tùy chọn mặc định đã khiến tôi thất vọng :)
James Newton-King

4
Geez ... tôi cũng vậy, tôi đang bắt đầu viết phương thức trợ giúp của riêng mình ... tên rác IMHO - nghe có vẻ như nó sẽ xuất ra một thẻ <label> bên cạnh nó.
Mr Grok

Lưu ý rằng khóa ViewData phải khác với DropDown-Id (trong ví dụ này là "Menu"! = "MenuID"). Nếu không, khung công tác sẽ ghi đè menu thả xuống, bỏ qua tham số thứ ba.
Manuel Allenspach

Tuyệt vời! Đã khắc phục sự cố của tôi với select2.js.
gkonuralp

7

Ví dụ:

    Controller :

    private void InitScreenInfoCollate()
    {   
        IEnumerable<MstBrd> listbrd = ibrandRepository.GetItemsByUsercode("");
        ViewBag.Brands = new SelectList(listbrd, "brd_cod", "brd_mei", null);

    }

    View :
    @Html.DropDownList("Brands", null, string.Empty, new { @class = "form-control"})

Kết quả :

hình ảnh nội tuyến


0

Giải pháp dễ dàng này đã hoạt động cho dự án mvc5 của tôi:

trong quan điểm:

@{
     Model.ModelItemsList.Add(new ModelItem{ });
     SelectList modelItemSelectList = new SelectList(Model.ModelItemsList, "ModelItemID", "ModelItemName");
}

Chỉ cần thêm một mục mới vào mục List<>bạn muốn hiển thị trong chế độ xem của mình. Trong trường hợp của tôi, tôi đã thêm một "ModelItem" trống vào của tôi List<ModelItem> ModelItemList. Vì ModelItemID của tôi là Hướng dẫn, tôi phải kiểm tra Guid.Empty trong phương thức trình điều khiển của mình và thực hiện một số mã. Đó là tất cả.


-8

Giải pháp được trình bày ở đây hoạt động rất tốt đối với tôi: http://forums.asp.net/t/1142484.aspx/1

Ý tưởng cơ bản là bạn đặt thuộc AppendDataBoundItemstính của bạn DropDownListthành truevà sau đó đặt một asp:ListItemvào DropDownListvà điều đó sẽ trở thành mục mặc định của bạn với tất cả các mục dữ liệu sau nó.


4
-1Điều này dành cho ASP.NET Web Forms, không phải MVC.
JoeBrockhaus
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.