我試圖填充另一個控制器的下拉列表。我有DeviceController有一個@ Html.DropDownList被填充。最初我有在控制器中填充DropDown的代碼。現在我正試圖將它移到指定用於下拉菜單的控制器。所以我有代碼在一個位置填充下拉列表,而不是多個控制器中的相同代碼。下拉正確加載,當我有它在,不過原來的控制器,當我移動它的下拉控制器我收到以下錯誤There is no ViewData item of type 'IEnumerable<SelectListItem>' that has the key 'DropDownDeviceType'.
從另一個控制器填充視圖中的下拉列表
我查看代碼 -
@Html.DropDownList("DropDownDeviceType", null, htmlAttributes: new { @class = "form-control" })
從我的DropDownController(如果我有這個代碼在我DeviceController它按預期工作)
public void PopulateDevciceType(object selectDeviceType = null)
{
string voidInd = "N";
var deviceType = db.DeviceTypes
.Where(x => x.VoidInd == voidInd)
.OrderBy(x => x.DeviceType1);
//ViewData["DropDownDeviceType"] = new SelectList(deviceType, "DeviceTypeID", "DeviceType1", selectDeviceType);
ViewBag.DropDownDeviceType = new SelectList(deviceType, "DeviceTypeID", "DeviceType1", selectDeviceType);
}
在我DeviceController
//Populate dropdowns
DropDownController dropDown = new DropDownController();
dropDown.PopulateDevciceType(model.DeviceTypeID);