使用静态项绑定Html.DropDownList

时间:2011-04-07 05:07:07

标签: asp.net-mvc asp.net-mvc-3 html.dropdownlistfor

我必须静态绑定Html.DropDownList只有两个项目。

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

重要的是,我必须设置文本和值字段。

我该怎么做?

6 个答案:

答案 0 :(得分:32)

我用它正常工作

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

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

答案 1 :(得分:24)

最佳做法是不在视图中创建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();

传递给constratctor:IEnumerable objec,值字段是文本字段和选定的值。

视图中的

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

答案 2 :(得分:5)

下面的代码假定您使用的是剃刀视图引擎,否则您需要转换它。

@{
   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);

您应该考虑在代码中创建模型而不是视图。这也是编辑模板的一个很好的候选者。

答案 3 :(得分:0)

如果您想明确一点,请尝试

        @{
            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)

答案 4 :(得分:0)

这解决了我:

&#13;
&#13;
 <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>
&#13;
&#13;
&#13;

答案 5 :(得分:-1)

<select asp-for="CountryName" asp-items=@(new List<SelectListItem> { new SelectListItem {Text="India",Value="1" } ,new SelectListItem {Text="Japan",Value="2" }} ) class="form-control">

<option>SELECT COUNTRY -- </option>