デフォルトの空のオプションを使用したASP.NETMVCドロップダウン


回答:


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>タグを出力するようです。
Grok氏

ViewDataキーはDropDown-Id(この例では "Menu"!= "MenuID")とは異なる必要があることに注意してください。それ以外の場合、フレームワークは3番目のパラメーターを無視して、ドロップダウンを上書きします。
Manuel Allenspach 2014年

驚くばかり!select2.jsの問題も修正しました。
gkonuralp 2015年

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プロパティをに設定してDropDownListからtrueにを入れることです。これがデフォルトのアイテムになりasp:ListItem、その後にDropDownListすべてのデータバインドされたアイテムが続きます。


4
-1これはASP.NETWebフォーム用であり、MVC用ではありません。
JoeBrockhaus 2014年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.