【问题标题】:ArgumentException: The parameters dictionary contains an invalid entry for parameterArgumentException:参数字典包含无效的参数条目
【发布时间】:2014-05-01 22:52:21
【问题描述】:

控制器中有不同的Action。两个链接,每个操作一个(作为菜单) 单击每个作品没有问题,通过单击链接在两个动作之间切换会引发以下错误(有时)

[ArgumentException:参数字典包含方法“System.Web.Mvc.ActionResult”的参数“vm”的无效条目 “Poject.Areas.Area1.Controllers.ControllerA”中的概述(Poject.Areas.Area1.Models.ViewModel2VM)。字典包含 'Poject.Areas.Area1.Models.ViewModel1VM' 类型的值,但 参数需要一个类型的值 '项目.区域.区域 1.模型.ViewModel2VM'。参数名称:参数] System.Web.Mvc.ActionDescriptor.ExtractParameterFromDictionary(ParameterInfo parameterInfo, IDictionary`2 参数, MethodInfo methodInfo) +733

大多数时候是正常的,有时会显示错误。所有 ViewModelClasses 都继承自同一个 ViewModelBase 类。这可能是一个原因吗?

欢迎任何帮助

【问题讨论】:

  • 我只是在控制器方法中添加“虚拟”后收到此错误。该消息引用了以“Proxy”结尾的控制器类名称 - 因此它与我在该方法上使用的 [Transaction] NHibernateIntegration 属性有关

标签: c# asp.net-mvc


【解决方案1】:

错误似乎很明显:您需要一个类型 Poject.Areas.Area1.Models.ViewModel2VM,但在某些情况下传递了类型 Poject.Areas.Area1.Models.ViewModel1VM

如果 ViewModel1VMViewModel2VM 或多或少是等价的,那么也许你可以通过创建一个它们继承自的公共类来解决这个问题,并将其用作参数类型,以便方法 Overview() 将接受两种类型。

【讨论】:

  • 是的,我知道加载了“错误”的 ViewModel 类。但这怎么会发生呢?我不对链接给出任何论据。
猜你喜欢
  • 1970-01-01
  • 2017-05-12
  • 2018-01-21
  • 1970-01-01
  • 1970-01-01
  • 2017-05-12
  • 2013-12-15
相关资源
最近更新 更多