2015-02-05 49 views
-1

完整的错误:传递到字典的模型项的类型为“Web.Services.Package []”

The model item passed into the dictionary is of type 'Web.Services.Package[]', but this dictionary requires a model item of type 'Web.Services.Package'. 

收到此错误。堆栈跟踪如下。任何想法?似乎无法让它消失。这与字典有关,并通过Web.Services.Package[],但[]是什么意思?

这是一个Razor页面,在C#中,我试图编辑一个类型为“Package”的对象。

[InvalidOperationException: The model item passed into the dictionary is of type 'Web.Services.Package[]', but this dictionary requires a model item of type 'Web.Services.Package'.] 
System.Web.Mvc.ViewDataDictionary`1.SetModel(Object value) +378 
System.Web.Mvc.ViewDataDictionary.set_Model(Object value) +47 
System.Web.Mvc.ViewDataDictionary..ctor(ViewDataDictionary dictionary) +612 
System.Web.Mvc.ViewDataDictionary`1..ctor(ViewDataDictionary viewDataDictionary) +37 
System.Web.Mvc.WebViewPage`1.SetViewData(ViewDataDictionary viewData) +98 
System.Web.Mvc.WebViewPage.set_ViewData(ViewDataDictionary value) +39 
System.Web.Mvc.RazorView.RenderView(ViewContext viewContext, TextWriter writer, Object instance) +425 
System.Web.Mvc.BuildManagerCompiledView.Render(ViewContext viewContext, TextWriter writer) +382 
System.Web.Mvc.ViewResultBase.ExecuteResult(ControllerContext context) +431 
System.Web.Mvc.ControllerActionInvoker.InvokeActionResult(ControllerContext controllerContext, ActionResult actionResult) +39 
System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive(IList`1 filters, Int32 filterIndex, ResultExecutingContext preContext, ControllerContext controllerContext, ActionResult actionResult) +116 
System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive(IList`1 filters, Int32 filterIndex, ResultExecutingContext preContext, ControllerContext controllerContext, ActionResult actionResult) +529 
System.Web.Mvc.ControllerActionInvoker.InvokeActionResultWithFilters(ControllerContext controllerContext, IList`1 filters, ActionResult actionResult) +106 
System.Web.Mvc.Async.<>c__DisplayClass2b.<BeginInvokeAction>b__1c() +321 
System.Web.Mvc.Async.<>c__DisplayClass21.<BeginInvokeAction>b__1e(IAsyncResult asyncResult) +185 
System.Web.Mvc.Async.WrappedAsyncResult`1.CallEndDelegate(IAsyncResult asyncResult) +42 
System.Web.Mvc.Async.WrappedAsyncResultBase`1.End() +133 
System.Web.Mvc.Async.AsyncResultWrapper.End(IAsyncResult asyncResult, Object tag) +56 
System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeAction(IAsyncResult asyncResult) +40 
System.Web.Mvc.Controller.<BeginExecuteCore>b__1d(IAsyncResult asyncResult, ExecuteCoreState innerState) +34 
System.Web.Mvc.Async.WrappedAsyncVoid`1.CallEndDelegate(IAsyncResult asyncResult) +70 
System.Web.Mvc.Async.WrappedAsyncResultBase`1.End() +139 
System.Web.Mvc.Async.AsyncResultWrapper.End(IAsyncResult asyncResult, Object tag) +59 
System.Web.Mvc.Async.AsyncResultWrapper.End(IAsyncResult asyncResult, Object tag) +40 
System.Web.Mvc.Controller.EndExecuteCore(IAsyncResult asyncResult) +44 
System.Web.Mvc.Controller.<BeginExecute>b__15(IAsyncResult asyncResult, Controller controller) +39 
System.Web.Mvc.Async.WrappedAsyncVoid`1.CallEndDelegate(IAsyncResult asyncResult) +62 
System.Web.Mvc.Async.WrappedAsyncResultBase`1.End() +139 
System.Web.Mvc.Async.AsyncResultWrapper.End(IAsyncResult asyncResult, Object tag) +59 
System.Web.Mvc.Async.AsyncResultWrapper.End(IAsyncResult asyncResult, Object tag) +40 
System.Web.Mvc.Controller.EndExecute(IAsyncResult asyncResult) +39 
System.Web.Mvc.Controller.System.Web.Mvc.Async.IAsyncController.EndExecute(IAsyncResult asyncResult) +39 
System.Web.Mvc.MvcHandler.<BeginProcessRequest>b__5(IAsyncResult asyncResult, ProcessRequestState innerState) +39 
System.Web.Mvc.Async.WrappedAsyncVoid`1.CallEndDelegate(IAsyncResult asyncResult) +70 
System.Web.Mvc.Async.WrappedAsyncResultBase`1.End() +139 
System.Web.Mvc.Async.AsyncResultWrapper.End(IAsyncResult asyncResult, Object tag) +59 
System.Web.Mvc.Async.AsyncResultWrapper.End(IAsyncResult asyncResult, Object tag) +40 
System.Web.Mvc.MvcHandler.EndProcessRequest(IAsyncResult asyncResult) +40 
System.Web.Mvc.MvcHandler.System.Web.IHttpAsyncHandler.EndProcessRequest(IAsyncResult result) +38 
System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +9514928 
System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +155 

感谢您的帮助!

+1

错误告诉你到底什么是错误的你传递一个数组与字符串''Web.Services.Package []''是不一样的''Web.Services.Package'' [C#基础教程] (http://www.tutorialspoint.com/csharp/) – MethodMan 2015-02-05 16:17:30

+0

您正在传递集合,而视图期望单个对象 – 2015-02-05 16:27:30

回答

0

[]意味着一个Array,这意味着一系列给定类型的对象。关于它如何在内存中工作有一些具体细节,但这些细节仅用于区分它与其他集合类型。

在这种情况下,你需要弄清楚为什么你试图通过多个包,你可能需要通过简单的地方array[0]array变量的名字被报告为经过的第一个元素,而不是数组类型。

相关问题