C# 应为Html下拉列表中的项目
嗨,当我在下拉列表中使用以下内容时C# 应为Html下拉列表中的项目,c#,asp.net-core,C#,Asp.net Core,嗨,当我在下拉列表中使用以下内容时 @Html.DropDownListFor(x => x.OIC_2, new SelectList(ViewBag.StaffMembers, "Value", "Text")) 即使viewbag中有员工的数据,我也会遇到以下错误 Viewbag.StaffMembers由以下成员组成: public void GetStaffMemebers() { List<SelectListItem&
@Html.DropDownListFor(x => x.OIC_2, new SelectList(ViewBag.StaffMembers, "Value", "Text"))
即使viewbag中有员工的数据,我也会遇到以下错误
Viewbag.StaffMembers由以下成员组成:
public void GetStaffMemebers() {
List<SelectListItem> listItems = new List<SelectListItem>();
var items = _context.StaffMember.Where(w=>w.isAcitve ==true && w.isDeleteted ==false).ToList();
foreach (var item in items) {
SelectListItem listItem = new SelectListItem();
listItem.Text = item.FirstName + " " + item.LastName ;
listItem.Value = item.Id.ToString();
listItems.Add(listItem);
}
ViewBag.StaffMembers = listItems;
}
public void GetStaffMemebers(){
List listItems=新列表();
var items=\u context.StaffMember.Where(w=>w.isacitive==true&&w.isdeleted==false).ToList();
foreach(项目中的var项目){
SelectListItem listItem=新建SelectListItem();
listItem.Text=item.FirstName+“”+item.LastName;
listItem.Value=item.Id.ToString();
添加(listItem);
}
ViewBag.StaffMembers=列表项;
}
错误
ArgumentNullException:值不能为null。(参数“items”)
Microsoft.AspNetCore.Mvc.Rendering.MultiSelectList..ctor(IEnumerable
项,字符串dataValueField,字符串dataTextField,IEnumerable
selectedValues,字符串数据组字段)
Microsoft.AspNetCore.Mvc.Rendering.SelectList..ctor(IEnumerable items,
字符串dataValueField、字符串dataTextField、对象selectedValue)
Microsoft.AspNetCore.Mvc.Rendering.SelectList..ctor(IEnumerable items,
字符串dataValueField,字符串dataTextField)CallSite.Target(闭包,
调用站点、类型、对象、字符串、字符串)
System.Dynamic.UpdateLegates.UpdateAndExecute4(调用站点,T0 arg0、T1 arg1、T2 arg2、T3 arg3)
中的AspNetCore.Views\u MISObjects\u Edit.b\u 27\u 0()
Edit.cshtml
+
@DropDownListFor(x=>x.OIC_2,新建)
选择列表(ViewBag.StaffMembers,“值”、“文本”))
最好尝试以下方法:
public void GetStaffMemebers()
{
var items = _context.StaffMember.Where(sm => sm.isAcitve ==true && sm.isDeleteted ==false).Select(sm => new
{
Name = sm.FirstName + " " + sm.LastName,
Id = sm.Id.ToString()
}).ToList();
ViewBag.StaffMembers = items;
}
现在确保在操作方法中调用了GetStaffMemebers()
然后在视图中,如下所示:
@Html.DropDownListFor(m => m.OIC_2, new SelectList(ViewBag.StaffMembers,"Id","Name"), "Select Member");
您的操作方法在哪里?您是在从控制器操作调用
GetStaffMemebers
方法吗?为什么他们从使用SelectList变为使用该方法多年了。@rogue39请看。它需要一个可数的项。