Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 3 用DB表项填充下拉列表_Asp.net Mvc 3_Entity Framework_Razor_Drop Down Menu - Fatal编程技术网

Asp.net mvc 3 用DB表项填充下拉列表

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

我有一张桌子,里面大约有3样东西。我希望使用该表填充
下拉列表
。但是我有一个条件,我只想在下拉列表中显示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)