我如何将对象列表中的两个对象字段合并到 mvc 中的一个下拉列表中
How can i combine two object fields in Object List into one DropDown in mvc
实际上我有一个在其中生成 viewbag 的操作。我在我的 ViewBag 中传递了一个对象列表。现在在视图中我想通过我的 viewbag 对象创建一个下拉列表,我需要两个字段作为 mvc 中下拉列表的组合。例如我的 ServiceList.field1 , ServiceList.field2 。我想将这两个字段合并到下拉列表中。
public ActionResult Add()
{
List<service> ServiceList = new List<service>();
ServiceList = GetService();
ViewBag.BackUPList = ServiceBackupList;
return View();
}
我的视图包含
@Html.DropDownList("name", (SelectList)ViewBag.BackUPList, new { @class =
"form-control" })
如何合并我的两个字段并在下拉列表中单独分组显示。
例如
ServiceList.field1
ServiceList.field1
ServiceList.field2
ServiceList.field2
您可以生成一个新集合,在其中将两个属性连接成一个,然后构造一个 SelectList
,例如:
ServiceList = GetService();
var dropDownList = ServiceList.Select(x=> new
{
Id = x.IdField,
Name = x.Field1.ToString() + x.Field2.ToString()
}).ToList();
ViewBag.BackUPList = new SelectList(dropDownList,"Id","Name");
编辑:
根据编辑后的问题,您需要生成两个集合然后连接:
var fieldList = ServiceList.Select(x=> x.IdField1)
.Concat(ServiceList.Select(x=> x.IdField2)).ToList();
然后创建一个 SelectList
并放入 ViewBag
:
ViewBag.BackUPList = fieldList.Select(x =>
new SelectListItem()
{
Value = x,
Text = x
}).ToList();
在视图中:
@Html.DropDownList("name",
ViewBag.BackUPList as IEnumerable<SelectListItem>,
new { @class = "form-control" })
实际上我有一个在其中生成 viewbag 的操作。我在我的 ViewBag 中传递了一个对象列表。现在在视图中我想通过我的 viewbag 对象创建一个下拉列表,我需要两个字段作为 mvc 中下拉列表的组合。例如我的 ServiceList.field1 , ServiceList.field2 。我想将这两个字段合并到下拉列表中。
public ActionResult Add()
{
List<service> ServiceList = new List<service>();
ServiceList = GetService();
ViewBag.BackUPList = ServiceBackupList;
return View();
}
我的视图包含
@Html.DropDownList("name", (SelectList)ViewBag.BackUPList, new { @class =
"form-control" })
如何合并我的两个字段并在下拉列表中单独分组显示。 例如
ServiceList.field1
ServiceList.field1
ServiceList.field2
ServiceList.field2
您可以生成一个新集合,在其中将两个属性连接成一个,然后构造一个 SelectList
,例如:
ServiceList = GetService();
var dropDownList = ServiceList.Select(x=> new
{
Id = x.IdField,
Name = x.Field1.ToString() + x.Field2.ToString()
}).ToList();
ViewBag.BackUPList = new SelectList(dropDownList,"Id","Name");
编辑:
根据编辑后的问题,您需要生成两个集合然后连接:
var fieldList = ServiceList.Select(x=> x.IdField1)
.Concat(ServiceList.Select(x=> x.IdField2)).ToList();
然后创建一个 SelectList
并放入 ViewBag
:
ViewBag.BackUPList = fieldList.Select(x =>
new SelectListItem()
{
Value = x,
Text = x
}).ToList();
在视图中:
@Html.DropDownList("name",
ViewBag.BackUPList as IEnumerable<SelectListItem>,
new { @class = "form-control" })