기본 빈 옵션이있는 ASP.NET MVC 드롭 다운


답변:


130

다음은 ViewData [ "Menu"] 항목에 지정된 SelectList (또는 IEnumerable) 앞에 string.Empty를 추가합니다. 선택 항목에는 ID와 이름이 MenuID있습니다.

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

문서 : DropDownList 메서드


13
감사. 기본 옵션에 대한 optionLabel의 매개 변수 이름이 나를 버렸습니다. :)
James Newton-King

4
이런 ... 나도 나 자신의 도우미 메서드를 작성하기 시작했습니다 ... 쓰레기 이름 IMHO-옆에 <label> 태그가 출력되는 것처럼 들립니다.
Mr Grok

ViewData 키는 DropDown-Id (이 예에서는 "Menu"! = "MenuID")와 달라야합니다. 그렇지 않으면 프레임 워크가 세 번째 매개 변수를 무시하고 드롭 다운을 덮어 씁니다.
Manuel Allenspach 2014 년

대박! select2.js에 대한 내 문제도 해결되었습니다.
gkonuralp 2015-06-16

7

예를 들면 :

    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"})

결과 :

인라인 이미지


0

이 쉬운 솔루션은 내 mvc5 프로젝트에서 작동했습니다.

보기 :

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

List<>보기에 표시하려는에 새 항목을 추가하기 만하면 됩니다. 제 경우에는 빈 "ModelItem"을 List<ModelItem> ModelItemList. 내 ModelItemID가 Guid이기 때문에 컨트롤러 메서드에서 Guid.Empty를 확인하고 코드를 작성해야했습니다. 그게 다야.


-8

여기에 제시된 솔루션은 저에게 매우 잘 작동했습니다. http://forums.asp.net/t/1142484.aspx/1

기본 개념은 사용자가 설정 한 것입니다 AppendDataBoundItems귀하의 재산 DropDownListtrue및 다음을 넣어 asp:ListItemDropDownList그 모든 데이터 바인딩 된 항목이 뒤에 오는 기본 항목이 될 것이다.


4
-1이것은 MVC가 아닌 ASP.NET Web Forms 용입니다.
JoeBrockhaus
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.