NopCommerce - ошибка с окном поиска - PullRequest
0 голосов
/ 02 июля 2018

У меня есть эта ошибка:

The model item passed into the dictionary is of type 
'Nop.Web.Models.Catalog.SearchModel', but this dictionary requires a model 
item of type 'Nop.Web.Models.Catalog.CategoryModel'

полная ошибка такова:

System.InvalidOperationException: The model item passed into the dictionary 
is of type 'Nop.Web.Models.Catalog.SearchModel', but this dictionary requires 
a model item of type 'Nop.Web.Models.Catalog.CategoryModel'. at 
System.Web.Mvc.ViewDataDictionary`1.SetModel(Object value) at 
System.Web.Mvc.ViewDataDictionary..ctor(ViewDataDictionary dictionary) at 
System.Web.Mvc.WebViewPage`1.SetViewData(ViewDataDictionary viewData) at 
System.Web.Mvc.WebViewPage.ConfigurePage(WebPageBase parentPage) at 
System.Web.WebPages.WebPageBase.<>c__DisplayClass3. 
<RenderPageCore>b__2(TextWriter writer) at 
System.Web.WebPages.WebPageBase.Write(HelperResult result) at 
System.Web.WebPages.WebPageBase.RenderSurrounding(String partialViewName, 
Action`1 body) at System.Web.WebPages.WebPageBase.PopContext() at 
System.Web.Mvc.ViewResultBase.ExecuteResult(ControllerContext context) at 
System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive 
(IList`1 filters, Int32 filterIndex, ResultExecutingContext preContext, 
ControllerContext controllerContext, ActionResult actionResult) at 
System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive 
(IList`1 filters, Int32 filterIndex, ResultExecutingContext preContext, 
ControllerContext controllerContext, ActionResult actionResult) at 
System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive 
(IList`1 filters, Int32 filterIndex, ResultExecutingContext preContext, 
ControllerContext controllerContext, ActionResult actionResult) at 
System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive 
(IList`1 filters, Int32 filterIndex, ResultExecutingContext preContext, 
ControllerContext controllerContext, ActionResult actionResult) at 
System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive 
(IList`1 filters, Int32 filterIndex, ResultExecutingContext preContext, 
ControllerContext controllerContext, ActionResult actionResult) at 
System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive 
(IList`1 filters, Int32 filterIndex, ResultExecutingContext preContext, 
ControllerContext controllerContext, ActionResult actionResult) at 
System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive 
(IList`1 filters, Int32 filterIndex, ResultExecutingContext preContext, 
ControllerContext controllerContext, ActionResult actionResult) at 
System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive 
(IList`1 filters, Int32 filterIndex, ResultExecutingContext preContext, 
ControllerContext controllerContext, ActionResult actionResult) at 
System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive 
(IList`1 filters, Int32 filterIndex, ResultExecutingContext preContext, 
ControllerContext controllerContext, ActionResult actionResult) at 
System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive 
(IList`1 filters, Int32 filterIndex, ResultExecutingContext preContext, 
ControllerContext controllerContext, ActionResult actionResult) at 
System.Web.Mvc.ControllerActionInvoker.InvokeActionResultWithFilters 
(ControllerContext controllerContext, IList`1 filters, ActionResult 
actionResult) at System.Web.Mvc.Async.AsyncControllerActionInvoker. 
<>c__DisplayClass21.<BeginInvokeAction>b__1e(IAsyncResult asyncResult) at 
System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeAction 
(IAsyncResult asyncResult) at System.Web.Mvc.Controller. 
<BeginExecuteCore>b__1d(IAsyncResult asyncResult, ExecuteCoreState 
innerState) at 
System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncVoid`1.CallEndDelegate 
(IAsyncResult asyncResult) at 
System.Web.Mvc.Controller.EndExecuteCore(IAsyncResult asyncResult) at 
System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncVoid`1.CallEndDelegate 
(IAsyncResult asyncResult) at 
System.Web.Mvc.Controller.EndExecute(IAsyncResult asyncResult) at 
System.Web.Mvc.MvcHandler.<BeginProcessRequest>b__5(IAsyncResult asyncResult, 
ProcessRequestState innerState) at 
System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncVoid`1.CallEndDelegate 
(IAsyncResult asyncResult) at 
System.Web.Mvc.MvcHandler.EndProcessRequest(IAsyncResult asyncResult) at 
System.Web.HttpApplication.CallHandlerExecutionStep.System.Web 
.HttpApplication.IExecutionStep.Execute() at 
System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step) at 
System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& 
completedSynchronously)

Я изменил свой SearchBox.cshtml, чтобы вставить входные данные, которые мне нужны, Родительская категория (cid) и текст поиска (q). Поэтому, чтобы найти ошибку, я удаляю с сервера SearchBox.cshtml и Search.cshtml, но она выдает мне ту же ошибку.

Я использую nopCommerce версии 3.90

Может кто-нибудь помочь мне исправить эту ошибку, пожалуйста.

1 Ответ

0 голосов
/ 03 июля 2018

Вы передаете модель для просмотра из управления - Nop.Web.Models.Catalog.SearchModel, а на странице просмотра вы используете модель - Nop.Web.Models.Catalog.CategoryModel

Используйте модель Nop.Web.Models.Catalog.SearchModel на странице просмотра, и это исправит вашу проблему.

...