web-dev-qa-db-ja.com

Html.DropDownListを静的アイテムにバインドします

Html.DropDownListを静的に2つのアイテムだけにバインドする必要があります。

Text="Yes" Value="1"
Text="No"  Value="0"

重要なことは、テキストと値のフィールドを設定する必要があるということです。

これどうやってするの?

14
Mukesh

ビューにSelectListを作成しないことをお勧めします。コントローラーで作成し、ViewDataを使用して渡す必要があります。

例:

var list = new SelectList(new [] 
{
    new { ID = "1", Name = "name1" },
    new { ID = "2", Name = "name2" },
    new { ID = "3", Name = "name3" },
}, 
"ID", "Name", 1);

ViewData["list"]=list;
return View();

設計者に渡す:IEnumerableオブジェクト、値フィールド、テキストフィールド、選択した値。

ビューで:

<%=Html.DropDownList("list",ViewData["list"] as SelectList) %>
24
Sreekumar P

私はこれが正常に動作していることを使用しました

        @Html.DropDownList("Status", new List<SelectListItem>

                 {
                    new SelectListItem{ Text="Active", Value = "1" },
                    new SelectListItem{ Text="Not-Active", Value = "0" }
                 }) 
32
Saurabhbhatt

以下のコードは、変換する必要がない場合、剃刀ビューエンジンを使用していることを前提としています。

@{
   var listItems = new List<ListItem>();
   listItems.Add(new ListItem{Text="Yes", Value="1"});
   listItems.Add(new ListItem{Text="No", Value="0"});
}

@Html.DropDownListFor(m=>m.SelectedValue, listItem);

ビューではなくコードでモデルを作成することを検討する必要があります。また、これはエディターテンプレートの良い候補です。

5
sarvesh

あなたが少し明示的になりたい場合は試してみてください

        @{
            var domainsList = new SelectList(new []
            {
                new SelectListItem { Text = ".Com", Value = ".com", Selected = true },
                new SelectListItem { Text = ".Shopping", Value = ".shopping"},
                new SelectListItem { Text = ".Org", Value = ".org"},
                new SelectListItem { Text = ".Net", Value = ".net"},
                new SelectListItem { Text = ".AE", Value = ".ae"},
                new SelectListItem { Text = ".Info", Value = ".info"},
            }, "Value", "Text");
        }
        @Html.DropDownList("TopLevelDomains", domainsList)
0
DotNet Dreamer

これは私のためにそれを解決しました:

 <td>
            @{  var RlistItems = new List<SelectListItem>();

                RlistItems.Add(new SelectListItem { Text = "Select Room Type", Value = "0" });
                RlistItems.Add(new SelectListItem { Text = "Meeting Room", Value = "1" });
                RlistItems.Add(new SelectListItem { Text = "Office", Value = "2" });
                RlistItems.Add(new SelectListItem { Text = "Cafeteria", Value = "3" });
            }

                @Html.DropDownListFor(model=>model.FirstOrDefault().RoomType
,RlistItems,RlistItems[item.RoomType.Value].Selected=true )
        </td>
0