我今天在做项目时也遇到这样的问题,在博客园中有找到合理的解释。注:这一bug在MVC4已经得到修复。不必指定最后的参数

以下摘自:http://www.cnblogs.com/FoundationSoft/archive/2012/03/01/2376101.html

在一个人员信息的View中,称为PersonView,调用了另外一个partial view,用来显示人员专业资质,称为QualificationView.PersonView的model类型为Person, QualificationView的model类型为IEnumerable<PersonQualification>。Person类有一个类型为List<PersonQualification>的属性qualificationList. 在PersonView中通过以下代码引用QualificaitonView。

Html.RenderPartial("QualificationListControl",Model.qualificationList);

当qualificationList为null时,会出现以下错误。

“/”应用程序中的服务器错误。


传入字典的模型项的类型为“ConstructionMis.Dll.Entity.Person”,但此字典需要类型 “System.Collections.Generic.IEnumerable`1[ConstructionMis.Dll.Entity.PersonQualification]” 的模型项。

说明: 执行当前 Web 请求期间,出现未经处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.InvalidOperationException: 传入字典的模型项的类型为“ConstructionMis.Dll.Entity.Person”,但此字典需要类型 “System.Collections.Generic.IEnumerable`1[ConstructionMis.Dll.Entity.PersonQualification]” 的模型项。 源错误:

行 96: </fieldset>
行 97:  List<ConstructionMis.Dll.Entity.WorkExperience> workList =  ViewBag.workList;
行 98:  Html.RenderPartial("QualificationListControl",Model.qualificationList);
行 99:  Html.RenderPartial("WorkExperienceControl", workList);
行 100:}
 
调试花了2个小时的时间,终于找到了解决方法。原来,如果在Vew A中调用了Partial View B,则给B传递model时,如果传递的参数为null,则此参数会被当作View A的model类型进行传递。即使作强制类型转换也不行。
但是,如果不使用partial view,而是直接使用一般的view,则不会出现此问题。
解决partial view传递null时出现类型不匹配的方法是在@Html.RenderPartial方法添加第三个参数,如下代码所示。
 Html.RenderPartial("QualificationListControl", Model.qualificationList, new ViewDataDictionary ());

后来发现,这是ASP.NET MVC的一个bug,可以从此处查看此bug的提交报告 http://aspnet.codeplex.com/workitem/8872 关于此问题的讨论及答案可参见 http://stackoverflow.com/questions/650393/asp-net-mvc-renderpartial-with-null-model-gets-passed-the-wrong-type

转载于:https://www.cnblogs.com/sdikerdong/p/3149060.html

ASP.NET MVC3 RenderPartial 传入空Model时出现字典类型错误相关推荐

  1. ASP.NET MVC3 上传头像图片并截图

    关于上传头像并且截图网上应该有很多资料,大多都是JQuery插件,用起来不是很方便 本文所介绍的方法将快速完成一个"上传头像图片并截图",只需要修改少量的代码 我们先来看看完成后的 ...

  2. ASP.NET MVC 上传大文件时404

    前一段时间会员的上传组件改用FLASH的swfupload来上传,既能很友好的显示上传进度,又能完全满足大文件的上传. 后来服务器升级到windows 2008,改为IIS7后,上传文件一旦超过30M ...

  3. 今天研究了一下关于Asp.net文件上传时的内存消耗问题

    晕啊,写了半天,突然间所有的格式都没了,我不得不在写字板中重新排版,DuDu哥,你还是快捷键都去掉吧. 简单研究了一下如何解决Asp.net连续上传文件时对内存占用越来越多的问题. 但目前只能解决一部 ...

  4. ASP.NET MVC3 Model验证总结 @Html.ValidationSummary(true)

    http://www.wyjexplorer.cn/Post/2012/8/3/model-validation-in-aspnet-mvc3 ASP.NET MVC3中的Model是自验证的,这是通 ...

  5. ASP.NET MVC3 异步刷新

    ASP.NET MVC3 异步刷新 2011-08-13 09:51:53 标签:MVC3 异步刷新 休闲 N Layer 职场 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者 ...

  6. Asp.net MVC3.0 入门指南 6 审视编辑方法和视图

    审视编辑方法和视图 在这一节中,您将审视movie控制器生成的响应方法和视图.然后您将添加 一个自定义搜索页面. 运行程序并通过在URL追加/Moives浏览movie控制器.把鼠标悬停在Edit 链 ...

  7. [转] ASP.NET MVC3 路由和多数据集的返回

    1.ASP.NET MVC3 中的路由 同前边一样本篇并不会过多的介绍理论知识,我们在Global.asax.cs文件中可以看到如下代码: routes.MapRoute("Default& ...

  8. 实现ASP.NET MVC3 HtmlHelper 的 RadioButtonList 与CheckBoxList 扩展

    ASP.NET MVC3也出来有一段时间了,对于没有RadioButtonList 与CheckBoxList的问题,网上也已经有很多解决方案了,可以for循环拼接出来,也可以引用ASP.NET MV ...

  9. ASP.NET MVC3 快速入门--第二节 添加一个控制器

    MVC的全称为model-view-controller(模型-视图-控制器).MVC是一种开发应用程序的模式,这个模式已经具有了很好的框架架构,并且十分容易维护.使用MVC开发出来的应用程序一般包括 ...

  10. [译]Professional ASP.NET MVC3(01)-Chapter 1:Getting Started(上)

    本章概要 理解ASP.NET MVC ASP.NET MVC3 预览 如何创建MVC3应用程序 MVC应用程序结构 本章首先简要介绍ASP.NET MVC, 解释它怎样适应ASP.NET MVC的历史 ...

最新文章

  1. vue-cli——vue-resource登录注册实例
  2. 2021-2027全球与中国DNA测序市场现状及未来发展趋势
  3. oracle log block size,案例:Oracle无法启动报错ORA-00218: block size 0 重建控制文件
  4. 说一说ffmpeg到处都在使用的ff_thread_once函数
  5. python找出在原图中的位置_用python简单处理图片(4):图像中的像素访问
  6. 石家庄计算机职业学院张秋玉,九龙坡有什么大学
  7. 微软 Edge 浏览器将推出 iOS 和 Android 版
  8. 深入探索PowerPivot客户端和服务器端架构
  9. ftp 相关知识集合
  10. inux系统磁盘管理基础知识及总结
  11. 智能读物产品优化、运营方案
  12. IEEE Access 期刊投稿
  13. 备案网站建设方案书模板
  14. python开发贴吧_python爬虫-贴吧
  15. 马尔可夫链 ▏小白都能看懂的马尔可夫链详解
  16. PCB中的SOLD MASK和阻抗开窗
  17. 平衡二叉树(AVL)
  18. 桌面虚拟化(VDI)的概述
  19. LinkedList源码浅析
  20. ios开发 多人语音聊天_iOS语音通话(语音对讲)

热门文章

  1. SSH 连接、远程上传下载文件
  2. Caffe学习:Blobs, Layers, and Nets
  3. Servlet之间的跳转(MVC模式)
  4. 机器学习(六)——降维处理原理
  5. tcp服务端无故死掉了linux,TCP服务端socket会丢连接的诡异问题及思考
  6. python mssql get image bin_python 使用pymssql连接sql server数据库
  7. python的代码保存到文档中 打不开怎么办_Python 制作网页打不开 直接跳到打开或者保存文件...
  8. nginx 调试 输出配置文件中的变量
  9. Kubernetes 小白学习笔记(2)--基本概念2
  10. multisim变压器反馈式_【鼎阳硬件智库原创|高速总线】 以太网变压器反转问题技术分析...