ASP.NET MVC 4中的Dropdownlist和ViewData

时间:2015-05-05 06:46:55

标签: asp.net-mvc-4 viewdata dropdownlistfor

我的代码有问题。 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'。”

我不知道为什么我不能得到这样的错误。我希望你们中的一些人可以解决这个错误。

此致

0 个答案:

没有答案