我的代码有问题。 Iwan使用ViewData和@ Html.Dropdownlist在我的View.cshtml中创建一个下拉列表。但是我在编译时遇到错误。 这是我的代码:
这是模型
public class DeviceComponentModel
{
public int devcomId { get; set; }
public int devcomcomponentId { get; set; }
public int? devcomdeviceId { get; set; }
public ComponentModel Component { get; set; }
public DeviceModel Device { get; set; }
}
这是控制器中的代码。
public ActionResult addDevicecomponent()
{
ViewData["Device"] = new SelectList(debuDB.Devices, "Id", "Name");
ViewData["Component"] = new SelectList(debuDB.Components, "Id", "Name");
DeviceComponentModel mdlDevicecom = new DeviceComponentModel();
return View(mdlDevicecom);
}
[HttpPost]
public ActionResult addDeviceComponent(DeviceComponentModel mdlDevicecom)
{
try
{
DeviceComponent deviceComponent = new DeviceComponent()
{
Id = mdlDevicecom.devcomId,
device_id = mdlDevicecom.devcomdeviceId,
component_id = mdlDevicecom.devcomcomponentId
};
debuDB.DeviceComponents.InsertOnSubmit(deviceComponent);
debuDB.SubmitChanges();
return RedirectToAction("Index");
}
catch
{
return View(mdlDevicecom);
}
}
这是我在视图中的代码
<div class="editor-label">
@Html.LabelFor(model => model.devcomdeviceId)
</div>
<div class="editor-field">
@Html.DropDownList("device_0",ViewData["Device"] as IEnumerable<SelectListItem>, "Choose Device")
</div>
<div class="editor-label">
@Html.LabelFor(model => model.devcomcomponentId)
</div>
<div class="editor-field">
@Html.DropDownList("component_0",ViewData["Component"] as IEnumerable<SelectListItem>, "Choose Component")
</div>
但是当我编译它时,我得到了这样的错误:
“没有类型'IEnumerable'的ViewData项具有键'device_0'。”
我不知道为什么我不能得到这样的错误。我希望你们中的一些人可以解决这个错误。
此致