Asp.net mvc 3 用DB表项填充下拉列表
我有一张桌子,里面大约有3样东西。我希望使用该表填充Asp.net mvc 3 用DB表项填充下拉列表,asp.net-mvc-3,entity-framework,razor,drop-down-menu,Asp.net Mvc 3,Entity Framework,Razor,Drop Down Menu,我有一张桌子,里面大约有3样东西。我希望使用该表填充下拉列表。但是我有一个条件,我只想在下拉列表中显示2项。如何做到这一点?您可以使用视图模型: public class MyViewModel { public string SelectedItemId { get; set; } public IEnumerable<SelectListItem> Items { get; set; } } 视图是标准内容,只需调用DropDownList for helper
下拉列表
。但是我有一个条件,我只想在下拉列表中显示2项。如何做到这一点?您可以使用视图模型:
public class MyViewModel
{
public string SelectedItemId { get; set; }
public IEnumerable<SelectListItem> Items { get; set; }
}
视图是标准内容,只需调用DropDownList for helper:
@model MyViewModel
@Html.DropDownListFor(x => x.SelectedItemId, Model.Items)
情况如何?您希望显示哪两个项目?第二名?不是第二名。我必须对同一个表使用多个下拉列表,但在某些视图中,不需要所有表项。请检查Darin的答案。您可能需要更改Where子句,以便根据您的标准获取这两项。我遇到了一个问题。该视图是另一个模型的强类型视图。现在该怎么做?您只需将我显示的两个属性(
SelectedItemId
和Items
)添加到您的视图模型中即可。现在,如果你告诉我这个视图模型是不能修改的,因为它是一个自动生成的EF类,我告诉你,将域模型传递给视图是一个非常糟糕的做法,你应该使用视图模型。因此,在本例中,您定义了一个包装视图模型,除了我在回答中显示的两个属性之外,还可以将域模型封装为一个属性。
@model MyViewModel
@Html.DropDownListFor(x => x.SelectedItemId, Model.Items)