2

どうやらエリアもサポートしているサイトコア 8.1 を使用しています。POC を開始するために、以下から sitecore81areas プロジェクトをダウンロードしました。

https://github.com/LonghornTaco/Sc81Areas

そして、シンプルな hello world コントローラーを追加しました。

ただし、サイトコア アイテムにアクセスしようとすると、次のエラーが表示されます。

[ExceptionWrapper: The controller for path '/' was not found or does not implement IController.]
[ControllerCreationException: Could not create controller: 'Sc81Areas.Web.Areas.Site1.Controllers.Hello'. 
The context item is: '/sitecore/content/Site1'. 
The current route url is: '{*pathInfo}'. This is the default Sitecore route which is set up in the 'InitializeRoutes' processor of the 'initialize' pipeline. ]
   Sitecore.Mvc.Controllers.SitecoreControllerFactory.CreateController(RequestContext requestContext, String controllerName) +202
   Sitecore.Mvc.Controllers.ControllerRunner.GetController() +23
   Sitecore.Mvc.Controllers.ControllerRunner.Execute() +43
   Sitecore.Mvc.Presentation.ControllerRenderer.Render(TextWriter writer) +134
   Sitecore.Mvc.Pipelines.Response.RenderRendering.ExecuteRenderer.Render(Renderer renderer, TextWriter writer, RenderRenderingArgs args) +30
   Sitecore.Mvc.Pipelines.Response.RenderRendering.ExecuteRenderer.Process(RenderRenderingArgs args) +75
   (Object , Object[] ) +74
   Sitecore.Pipelines.CorePipeline.Run(PipelineArgs args) +484
   Sitecore.Mvc.Pipelines.PipelineService.RunPipeline(String pipelineName, TArgs args) +184
   Sitecore.Mvc.Pipelines.Response.RenderPlaceholder.PerformRendering.Render(String placeholderName, TextWriter writer, RenderPlaceholderArgs args) +216
   (Object , Object[] ) +74
   Sitecore.Pipelines.CorePipeline.Run(PipelineArgs args) +484
   Sitecore.Mvc.Pipelines.PipelineService.RunPipeline(String pipelineName, TArgs args) +184
   Sitecore.Mvc.Helpers.SitecoreHelper.Placeholder(String placeholderName) +259
   ASP._Page_Areas_Site1_Views_Shared_Site1DefaultLayout_cshtml.Execute() in c:\sitecore\sitecore81\Website\Areas\Site1\Views\Shared\Site1DefaultLayout.cshtml:19
   System.Web.WebPages.WebPageBase.ExecutePageHierarchy() +253
   System.Web.Mvc.WebViewPage.ExecutePageHierarchy() +148
   System.Web.WebPages.WebPageBase.ExecutePageHierarchy(WebPageContext pageContext, TextWriter writer, WebPageRenderingBase startPage) +122
   System.Web.Mvc.Html.PartialExtensions.Partial(HtmlHelper htmlHelper, String partialViewName, Object model, ViewDataDictionary viewData) +137
   Sitecore.Mvc.Presentation.ViewRenderer.Render(TextWriter writer) +221
[InvalidOperationException: Error while rendering view: '/Areas/Site1/Views/Shared/Site1DefaultLayout.cshtml' (model: 'Sitecore.Mvc.Presentation.RenderingModel, Sitecore.Mvc').

デフォルトのルート構成を無効にしました。

//routes.MapRoute(
            //    name: "Default",
            //    url: "{controller}/{action}/{id}",
            //    defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
            //);

また

  1. レイアウトにエリアを追加。
  2. エリア登録の下のデフォルト ルートを削除しました。
  3. サイトノードに mvcarea を追加

それでもエラーは続きます。根本的な原因(構成設定またはDIの可能性があります)が正確に何であるかについて少し混乱しています。

コントローラーが特定のサイトコア コントローラーから継承する必要があるかどうかわかりません。

あなたの助けは大歓迎です。

アップデート:

コードを共有したかったのですが、かなり大きいです。基本的に、以下のレポから SC81Areas プロジェクトをダウンロードし、hello コントローラーを追加しました。

https://github.com/LonghornTaco/Sc81Areas

4

2 に答える 2