我刚刚在Stack溢出上创建了我的帐户,所以这是我第一次提出问题:我的DropDownList有问题。我不知道我做错了什么,因为我对ASP-NET和MVC 5比较陌生,所以请原谅我做过的任何可怕的事情
控制器:
public ActionResult typeDevices()
{
List<SelectListItem> typelist = new List<SelectListItem>();
DropDownModel type = new DropDownModel();
type.TypeDevicesId = 1;
type.TypeDevicesValue = "typeDevice1";
typelist.Add(new SelectListItem() { Value = type.TypeDevicesValue, Text = type.TypeDevicesId.ToString() });
type.TypeDevicesId = 2;
type.TypeDevicesValue = "typeDevice2";
typelist.Add(new SelectListItem() { Value = type.TypeDevicesValue, Text = type.TypeDevicesId.ToString() });
type.TypeDevicesId = 3;
type.TypeDevicesValue = "typeDevice3";
typelist.Add(new SelectListItem() { Value = type.TypeDevicesValue, Text = type.TypeDevicesId.ToString() });
SelectList listvalues = new SelectList(typelist, "Text", "Value");
ViewBag.DropDownValues = listvalues;
ViewData["DropDownData"] = new SelectList(listvalues, "Text", "Value");
return View();
}
型号:
public class DropDownModel
{
public int TypeDevicesId { get; set; }
public string TypeDevicesValue { get; set; }
}
指数:
<p>
<label class="field" for="Type">Type:</label>
@Html.DropDownList("DropDownData", (SelectList)ViewBag.DropDownValues))
</p>
此代码来自我关注的视频。 Link to video
我得到的错误是
没有类型为'IEnumerable&lt; SelectListItem&gt;'的ViewData项它有关键'DropDownData'
答案 0 :(得分:0)
只需更改此行代码
即可ViewBag.DropDownValues = listvalues;
到
ViewBag.DropDownValues = typelist;
您需要在下拉列表中提供IEnumerable<SelectListItem>
类型数据。您的listvalues
类型为SelectList
,但您的typelist
属于所需类型。
答案 1 :(得分:0)
试试这个:
Pipe
答案 2 :(得分:0)
问题解决了,我做了一个公共的actionResult TypeDevices,但我从来没有打电话给它。所以这有点愚蠢。感谢大家的帮助! :)
我修改了问题,方法是将Public ActionResult TypeDevices
更改为Public void Type Devices
并在ActionResult索引中调用TypeDevices();
。