【问题标题】:Including MVC in existing Sitecore Project在现有 Sitecore 项目中包含 MVC
【发布时间】:2015-09-22 08:45:16
【问题描述】:

我们已经启动并运行了一个基于常规 aspx/ascx 方法的 Sitecore 项目。

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

出于测试目的,我正在尝试向项目中添加一个非常简单的 MVC 文本组件,但我仍然以某种方式卡住了。

到目前为止我做了什么:

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

现在,站点确实编译并运行。

我有这个控制器:

    public class TextComponentController : Controller
    {
      public ActionResult Index()
      {
        return View();
      }
    }

我的看法:

<h2>Index</h2>

<p>Hello from my View Template</p>

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

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

【问题讨论】:

  • 您是否在 Sitecore 中创建了控制器渲染?
  • 还没有,但是我现在已经看到您可以添加视图渲染。

标签: sitecore sitecore-mvc


【解决方案1】:

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

  1. Item 为您的页面,具有 URL 的那个;这在 Sitecore 中很正常
  2. 该页面项目应分配有布局。从 Presentation --> Details 菜单中至少选择该舞台上的布局。如果您还没有布局,则需要在/Layout/Layouts 文件夹下创建一个布局定义项,并将其与某个*.cshml 文件关联。还要提到布局应该有一个占位符,您将在其中“注入”您的渲染。

    @Html.Sitecore().Placeholder("Main")
    
  3. 您需要在 Sitecore 的 /Layout/Renderings 文件夹下创建一个 Controller Rendering。确保将 ControllerController Action 字段设置为控制器名称和操作方法名称。

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

到此为止。

希望这会有所帮助!

【讨论】:

  • 谢谢马丁,我现在就试试。模型/视图/控制器文件夹是否需要位于我网站的根目录中,或者我可以将视图和控制器存储在我想要的任何位置?我们将子文件夹用于不同类型的内容组件。例如网站/布局/项目名称/页脚
  • 控制器只是普通的 .NET 类,它们编译成 DLL 并由 Sitecore 在运行时解析。您可以将它们放在代码上的任何位置;同样适用于经典 MVC
  • 谢谢马丁。但 Sitecore 似乎在网站/视图中搜索视图。怎么改?
  • Easy =)) return View("/your/view/path");
  • 谢谢马丁,有没有办法将我的 mvc 组件包含在我现有的 MainLayout(aspx 文件)中,还是我必须重写它?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-22
  • 2017-03-10
  • 1970-01-01
相关资源
最近更新 更多