项目中的某个页面,在访问时出现以下错误:

不存在具有键“xxxId”的“IEnumerable<SelectListItem>”类型的 ViewData 项

具体的场景说明如下:

一个编辑页,其中某下拉控件绑定值为来自model对象中的一个List<SelectListItem>集合属性。具体看下面:

Ⅰ、前端视图页面的代码

  @Html.DropDownListFor(p => p.SubitemTypeId,(Model.SubitemTypeList as List<SelectListItem>),
new { @class = "form-control" })

Ⅱ、后端控制器中返回视图的action

        public ActionResult EditSubitem(long? id)
{
var entObj = new SubitemModel();//初始化基础数据 if (id!=null&&id!=)
{
entObj = _SubitemAppService.GetSubitem(id.Value);
}
entObj.SubitemTypeList = _SubitemTypeAppService.SubitemTypeList();//返回List<SelectListItem>的集合 return View(entObj);
}

1)当_SubitemTypeAppService.SubitemTypeList()返回集合不为空时,访问页面下拉控件不会报错;

2)当_SubitemTypeAppService.SubitemTypeList()返回集合为空时,访问页面时,下拉控件会报文章开头的错

原因:当返回为空值时,则Model.SubitemTypeList为null值,当然不能转化为 List<SelectListItem>下拉项。

处理方式为修改页面绑定的值的方式,当为null时增加一个为空的默认项

@Html.DropDownListFor(p => p.SubitemTypeId, 
Model.SubitemTypeList==null?new List<SelectListItem> { new SelectListItem { Text="无选项",Value=""} } : (Model.SubitemTypeList as List<SelectListItem>),
new { @class = "form-control" })

在网上查找时,发现还有一种情况也会出现以上报错:http://bbs.csdn.net/topics/380095463

ASP.NET MVC 3 常用

最新文章

  1. 多对多关系&lt;EntityFramework6.0&gt;
  2. ZeroMQ接口函数之 :zmq_tcp – 使用TCP协议的&#216;MQ网络单播协议
  3. 轻量级队列beanstalkd
  4. 关于启用 HTTPS 的一些经验分享(二)
  5. Hadoop是什么?一句话理解
  6. 复合sql
  7. mysql5日期类型datetime查询范围值
  8. jQuery选择器之可见性过滤选择器Demo
  9. qt QLabel 显示网络图片
  10. Android加速度传感器实现“摇一摇”,带手机振动
  11. PHP+MySQL多语句执行&lt;转自wooyun&gt;
  12. Content by query webpart 自定义样式的使用方法
  13. ADB server didn&#39;t ACK的问题
  14. Android 它们的定义View (一)
  15. 纯CSS 贴底部的布局(兼容各个浏览器包括IE6)
  16. Angular19 自定义表单控件
  17. zTree实现单独选中根节点中第一个节点
  18. 闪回工具flashback
  19. 深入理解Redis复制
  20. matlab练习程序(FAST特征点检测)

热门文章

  1. 长文本溢出显示省略号(…) text-overflow: ellipsis
  2. ViewPager+Fragment切换卡顿解决办法
  3. 使用katalon自带Spy功能获取/验证控件Selector、XPath
  4. SpringBoot整合定时任务
  5. maven(七),本地仓库
  6. &lt;转&gt;通过反射获取Form/MenuStrip/ContextMenuStrip等列表
  7. Linux的命名空间详解--Linux进程的管理与调度(二)【转】
  8. linux下安装mysql简单步骤
  9. windows7系统最大支持多少内存
  10. vue学习笔记1-基本知识