在现有Sitecore项目中包含MVC

Bgl*_*l86 2 sitecore sitecore-mvc

我们已经启动并运行Sitecore项目,这是基于常规的aspx/ascx方法.

随着时间的推移,我们希望将现有的子布局转换为MVC.

出于测试目的,我试图在项目中添加一个非常简单的MVC文本组件,但我仍然被卡住了.

到目前为止我做了什么:

  • 已安装MVC 5.2
  • 已安装的WebPages
  • 添加了引用和绑定
  • 添加了MVC脚手架

现在,该网站确实编译并运行.

我有这个控制器:

    public class TextComponentController : Controller
    {
      public ActionResult Index()
      {
        return View();
      }
    }
Run Code Online (Sandbox Code Playgroud)

我的观点是:

<h2>Index</h2>

<p>Hello from my View Template</p>
Run Code Online (Sandbox Code Playgroud)

所以这里绝对没什么特别的;)

如何创建只显示这个简单MVC组件的子布局(没有数据源)?

Mar*_*les 7

以最简单的方式,您需要具备以下条件:

  1. 您的页面的项目,具有URL的项目; 这在Sitecore中是正常的
  2. 该页面项目应该分配布局.从Presentation - > Details菜单中选择该阶段的至少一个布局.如果您还没有布局,则需要在/ Layout/Layouts文件夹下创建一个布局定义项,并将其与某些*.cshml文件关联.另请注意,布局应该有一个占位符,您可以在其中"注入"渲染.

    @Html.Sitecore().Placeholder("Main")
    
    Run Code Online (Sandbox Code Playgroud)
  3. 您需要在Sitecore中的/ Layout/Renderings文件夹下创建一个Controller Rendering .确保将ControllerController Action字段设置为控制器名称和操作方法名称. 在此输入图像描述

  4. 最后,再次转到Presentation - > Details - > Edit - > Controls并将新创建的渲染添加到布局*.cshtml文件中的占位符中. 在此输入图像描述

这一切都完成了.

希望这可以帮助!