2014-03-24 5 views
1

컨트롤러에 다른 작업이 있습니다. 매개 변수 사전에 잘못된 항목이 포함 : 링크를 클릭하여 두 가지 작업 사이를 전환 할 두 링크 (메뉴 등) 각 작업에 한 가지 문제없이 각 작업에 클릭하면, (때로는) 오류ArgumentException : 매개 변수 사전에 잘못된 매개 변수 항목이 포함되어 있습니다.

[ArgumentException이이 다음 던질 수 'Poject.Areas.Area1.Controllers.ControllerA'의 메서드 'System.Web.Mvc.ActionResult 개요 (Poject.Areas.Area1.Models.ViewModel2VM)'에 대한 매개 변수 'vm'입니다. 사전에 'Poject.Areas.Area1.Models.ViewModel1VM'유형의 값인 이 들어 있지만 매개 변수에는 'Poject.Area.Area1.Models.ViewModel2VM'유형의 값이 필요합니다. 매개 변수 이름 : 매개 변수] System.Web.Mvc.ActionDescriptor.ExtractParameterFromDictionary (매개 변수 정보 매개 변수 정보, IDictionary`2 매개 변수, MethodInfo methodInfo) 시대의 대부분의

733 가끔 오류가 표시됩니다, 작품입니다. 모든 ViewModelClasses는 동일한 ViewModelBase 클래스에서 상속받습니다. 이것이 이유일까요?

+0

컨트롤러 메서드에 "가상"을 추가 한 후에이 오류가 발생합니다. 메시지는 "Proxy"로 끝나는 컨트롤러 클래스 이름을 참조합니다. 따라서이 메소드에서 사용하고있는 [Transaction] NHibernateIntegration 속성과 관련됩니다. – PandaWood

답변

0

오류 환영 어떤 도움은 매우 분명한 것 같다 당신은 유형 Poject.Areas.Area1.Models.ViewModel2VM이 필요하지만, 유형 Poject.Areas.Area1.Models.ViewModel1VM을 통과하는 경우에 있습니다.

하면 ViewModel1VM AMD ViewModel2VM은 아마도 당신은 그들이 상속 공통 클래스를 만들어이 문제를 해결하고 방법 Overview()이 두 가지 유형을 수락 할 매개 변수 유형으로, 그래서 것을 사용할 수 있습니다, 더 많거나 적은 동일합니다.

+0

예, '잘못된'ViewModel 클래스가로드되었다는 것을 이해합니다. 그러나 어떻게 이런 일이 일어날 수 있습니까? 링크와 관련하여 어떠한 주장도하지 않습니다. – McNos

관련 문제