public class Auction { public string Title { get; set; } public string category { get; set; } }
和控制器:
[HttpGet] public ActionResult UserForm() { var categoryList = new SelectList(new[] { "auto","elec","games","Home" }); ViewBag.categoryList = categoryList; return View(); }
在视图中我有以下几行:
<div class="editor-field"> @Html.DropDownListFor(model => model.category,(SelectList)ViewBag.categoryList) @Html.ValidationMessageFor(model => model.category) </div>
我尝试保存表单时遇到的错误是:
There is no ViewData item of type ‘IEnumerable’ that
has the key ‘category’. Description: An unhandled exception occurred
during the execution of the current web request. Please review the
stack trace for more information about the error and where it
originated in the code.Exception Details: system.invalidOperationException: There is no
ViewData item of type ‘IEnumerable’ that has the key
‘category’.
我不明白是什么问题,因为我做了(或试图做)本指南中完成的所有事情:
https://www.youtube.com/watch?v=7HM6kDBj0vE
该视频也可以在此链接中找到(第6章 – 自动绑定到请求中的数据):
http://www.lynda.com/ASPNET-tutorials/ASPNET-MVC-4-Essential-Training/109762-2.html
解决方法
The error i get when i try to save the form
这就是你的问题所在.我怀疑你没有在post方法中重建你的列表. get方法中的以下代码行也应该在post方法中,特别是如果要返回相同的视图,或者在下拉列表中使用ViewBag.categoryList的视图.
var categoryList = new SelectList(new[] { "auto","Home" }); ViewBag.categoryList = categoryList;
当您使用带有dropdownlistfor html帮助器的null对象时,会出现这种错误.如果您执行类似的操作,则可以轻松复制该错误
@Html.DropDownListFor(model => model.PropertyName,null) // or @Html.DropDownList("dropdownX",null,"")
原文地址:https://www.jb51.cc/aspnet/245749.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。