gpt4 book ai didi

asp.net-mvc - 是否可以在 Orchard CMS 中使用 Razor 布局并绕过主题

转载 作者:行者123 更新时间:2023-12-05 00:31:11 25 4
gpt4 key购买 nike

一点上下文

我们有一个最近被很多人使用的 MVC4 Web 应用程序,我们希望将其移植到 Orchard CMS。即使这是一个“管理”类型的应用程序,我们也不希望它成为 Orchard 管理部分的一部分。此应用程序目前已上线,我们希望最终用户尽可能不看到迁移到 Orchard。

我们现在在哪里

我们按照这个答案作为如何 Integrate existing ASP.NET MVC application with Orchard CMS但是我们使用布局(Razor 不是 Orchard),并且它在 Orchard 呈现页面的方式下(默认情况下)不起作用( Controller 操作返回的 View 在没有布局的情况下显示 - _ViewStart.cshtml 被忽略)。我试图在 View 方法中指定布局的路径,但它不起作用或路径不好,因为我们在一个模块中。有没有办法告诉 Orchard 使用 _layout.cshtml 文件并绕过 Orchard 主题?

最佳答案

可以绕过 Orchard 主题。请注意,我使用 MvcMailer 执行此操作,因此输出的电子邮件是带有布局的“模板化”HTML。我不能肯定地说这适用于常规页面,但您可以尝试一下。只需在你的视野中拍下这个:

@inherits System.Web.Mvc.WebViewPage<object>
@{
Layout = "_Layout.cshtml";
}

警告:您不能使用较新的 @model 指令。我只是回到旧样式并将我的模型放在“对象”所在的位置:
@using Namesapce.ViewModels
@inherits System.Web.Mvc.WebViewPage<MyViewModel>

否则,创建主题并覆盖 Orchard 的任何形状都非常简单。我有两种方法:
  • 创建一个简单的主题,覆盖形状(假设你想要一个
    不同的登录,只需在 Theme 的 ~/View 中创建 Login.cshtml
    文件夹),使用替代品(使用 Layout-homepage.cshtml 覆盖
    主页的布局),有你的 .css 等;
  • 使用一些技巧来使用模块中的代码覆盖主题,并创建
    主题文件夹中的您自己的 View 和形状。例如,您可以在主题中有一个 Layout.cshtml 文件,其中包含显示形状的代码。但是,形状本身(.cshtml 文件)存在于您的模块中,这非常适合使用仪表板类型的主题,它将
    调用在您的不同模块中名称相同的形状,但
    显示不同的内容。这方面的代码更深入一些。只需询问您是否需要 sample 。
  • 关于asp.net-mvc - 是否可以在 Orchard CMS 中使用 Razor 布局并绕过主题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15347551/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com