Asp.net mvc 下拉列表MVC的静态数据列表
我想在模型中有一个静态数据列表,可以在viewmodel中使用,也可以在视图中下拉。我希望能够在我的控制器中以这种方式使用它:Asp.net mvc 下拉列表MVC的静态数据列表,asp.net-mvc,html.dropdownlistfor,Asp.net Mvc,Html.dropdownlistfor,我想在模型中有一个静态数据列表,可以在viewmodel中使用,也可以在视图中下拉。我希望能够在我的控制器中以这种方式使用它: MaintenanceTypeList = new SelectList(g, "MaintenanceTypeID", "MaintenanceTypeName"), 并在我的视图中访问它,如下所示: @Html.LabelFor(model => model.MaintenanceTypeID) @Html.DropDownListFor(x =>
MaintenanceTypeList = new SelectList(g, "MaintenanceTypeID", "MaintenanceTypeName"),
并在我的视图中访问它,如下所示:
@Html.LabelFor(model => model.MaintenanceTypeID)
@Html.DropDownListFor(x => x.MaintenanceTypeID, Model.MaintenanceTypeList, "-- Select --", new { style = "width: 150px;" })
@Html.ValidationMessageFor(x => x.MaintenanceTypeID)
我目前正在为数据库中的数据使用存储库模式,但不想将此数据放入数据库中,因为它永远不会更改。不过我还是想要一个模型。基本上,我的下拉列表应该提供以下内容:
Value Text
-------------------------------------
Calibration Calibration
Prevent Preventative Maintenance
CalibrationPrevent PM and Calibration
非常感谢使用models/oop的静态列表的任何帮助或示例您可以使用列表初始值设定项:
public static SomeHelperClass{
public static List<SelectListItem> MaintenanceTypeList {
get {
return new List<SelectListItem>
{ new SelectListItem{Value = "Calibration", Text = "Calibration"}
,new SelectListItem{ Value = "Prevent", Text = "Preventative Maintenance" }
,etc.
};
}
}
}
然后你可以做像这样的事情
Enum.GetValues(typeof(MaintenanceType )).Select(m=>new SelectListItem{ Value = m, Text = m.GetDescription()} ).ToList()
最后一行有点过头了,所以希望我没有犯错误。我觉得enum的结构更适合您的工作。谢谢!我与你的第一个建议走了一条非常相似的路线,所以我把它标记为答案。我在这里找到了解决方案:
Enum.GetValues(typeof(MaintenanceType )).Select(m=>new SelectListItem{ Value = m, Text = m.GetDescription()} ).ToList()