是否可以在 Orchard CMS 中使用剃刀布局并绕过主题

2023-12-11

一点背景知识

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

我们现在在哪里

我们遵循这个答案如何将现有 ASP.NET MVC 应用程序与 Orchard CMS 集成但我们使用布局(Razor 而不是 Orchard),并且它无法(默认)以 Orchard 渲染页面的方式工作(控制器操作返回的视图在没有布局的情况下显示 - _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 的任何形状都非常简单。我有两种方法:

  1. 创建一个简单的主题,覆盖形状(假设你想要一个 不同的登录,只需在主题的~/View中创建Login.cshtml 文件夹),使用替代项(使用 Layout-homepage.cshtml 覆盖 主页的布局),有你的.css等;
  2. 使用一些技巧用模块中的代码覆盖主题,并创建 主题文件夹中您自己的视图和形状。例如,您可以在主题中包含一个 Layout.cshtml 文件,其中包含显示形状的代码。但是,形状本身(.cshtml 文件)位于您的模块中,这对于使用仪表板类型主题非常有用,该主题将 调用在不同模块中命名相同的形状,但是 显示不同的内容。这个代码有点深入。只要询问您是否需要样品即可。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

是否可以在 Orchard CMS 中使用剃刀布局并绕过主题 的相关文章

  • 如何将 int 数组从 ajax 发送到 c# mvc?

    如何将 int 数组从 ajax 发送到 c mvc ajax url
  • JSON 解析 C# 模型

    我似乎无法解析一些 json 以将其转换为模型 JSON status ok count 100 data nickname God id null account id 1000076613 nickname god0 id null a
  • 发送电子邮件属于应用程序的表示层还是业务层?

    我正在尝试找出在我的 Asp net MVC 应用程序中放置发送电子邮件的代码的最佳区域 现在 我的应用程序设置在 2 个 VS 项目中 将业务层与表示层分开 我正在尝试设置一种情况 当用户重置密码时 业务逻辑更改密码后 服务器将向用户发送
  • 404 - 在控制器 Y 上找不到公共操作方法 X(ActionInvoker.InvokeAction 返回 false)

    这不是一个重复的问题 这个问题让我发疯 我收到典型错误 控制器 Y 上未找到公共操作方法 X 该错误返回404 Not Found 屏幕截图给了你一个好主意 该图像显示调试器在引发异常的行执行之前暂停 base HandleUnknownA
  • 如何将 ENUM 值从视图转换为字符串到控制器

    所以我已经知道如何获取字符串 整数 十进制 现在我在枚举的这一部分中苦苦挣扎 如何将枚举转换为字符串 Enum statecode apsp Customer BillingAddress StateCode Value Customer
  • 在 NopCommerce 3.8 的管理面板中添加子菜单

    我正在通过 Pluralsight 提供的教程学习 Nopcommerce 在管理面板中为插件添加菜单时 3 5 和 3 8 版本有所不同 没有public SiteMapNode BuildMenuItem 相反 我们必须使用public
  • 是否应该在使用 MVC 的每个视图中使用 ViewModel?

    我了解您使用 ViewModel 来存储来自其他模型和源的不同数据以在视图中使用 因为模型并不总是包含您想要的内容 我试图弄清楚为每个视图使用 ViewModel 是否合适 我问的原因是出于一致性原因 您可以有一个仅需要模型本身的视图 以及
  • 是否可以手动更新 ModelState.IsValid ?

    我想尽可能使用内置的验证功能 我还想对 CRUD 方法使用相同的模型 但是 由于无法使用标准模式完成下拉列表 因此我必须手动验证它 在回发方法中 我只想验证下拉列表并将此结果添加到 ModelState 中 这样我就不必验证使用数据注释完成
  • ASP.NET MVC 使用类型化模型将模型与单选按钮列表进行两种方式数据绑定

    我有一个由单选按钮矩阵组成的 mvc 视图 每行单选按钮都在一个组中 代表模型中的一个键入对象 使用各种博客和帖子的指导 我已成功将发布的表单结果绑定到控制器操作中的类型化模型数组 但是似乎无法成功反转效果并将现有模型绑定到单选按钮 同时保
  • ASP.Net MVC 在哪里从实体转换为视图模型?

    标题几乎解释了一切 这是我在我们的项目中尝试做的最后一件事 我们的结构是一个服务库 其中包含这样的功能
  • 为什么不建议使用 MassTransit 在 Web 应用程序中托管接收端点?

    我正在开发 ASP NET MVC 5 应用程序 基于 nopCommerce 我想使用 MassTransit 与另一个用于库存管理 计费等的应用程序进行通信 如果我可以将接收端点直接添加到 Web 应用程序中 而不必为此创建 Windo
  • 返回 JSON 或部分 html 的 ASP.NET MVC 控制器操作

    我正在尝试创建控制器操作 该操作将根据参数返回 JSON 或部分 html 将结果异步返回到 MVC 页面的最佳方法是什么 在您的操作方法中 返回 Json object 以将 JSON 返回到您的页面 public ActionResul
  • HTTP post 上的 MVC 模型子对象为 null

    希望可以有人帮帮我 我是 MVC 新手 来自 winforms console vb6background 抱歉 如果这个问题已经得到解答 我正在努力了解如何解决以下问题 我有一个视图模型 public class testvm publi
  • ASP.NET MVC 3 中未经身份验证用户的缓存主页

    我的网站有一个主页 我想为匿名用户缓存该页面 并将其设置为经过身份验证的用户的 私有 以便他们将其保存在自己的计算机上 而不是其他地方 因此 如果用户是匿名的 我想将页面保存在服务器缓存中 并使用以下命令保存在浏览器缓存中Cache con
  • 如何从子动作中获取当前控制器和动作?

    我的视图的一部分是通过调用子操作的 RenderAction 呈现的 如何从该子操作中获取父控制器和操作 当我使用 ViewContext RouteData Values action 我取回了子操作的名称 但我需要的是父 调用操作 Th
  • 使用 SignalR 检测“服务器离线”

    我们尝试在低带宽环境中使用 SignalR 在该环境中 与后端服务器的连接可以随机出现和消失 并且我们希望我们的 Web 应用程序能够做出适当的响应 看起来这个连接 API 在过去的一年里一直在变化 但根据最新的文档 我尝试连接 conne
  • global.asax Application_AcquireRequestState 与 Application_BeginRequest

    有什么不同 我想在我的应用程序中实现语言下拉选择 因此 当选择选定的语言时 将设置线程区域性并重新加载页面 Like so Thread CurrentThread CurrentCulture CultureInfo CreateSpec
  • ASP.NET MVC - 重写 FormMethod.Get 查询字符串?

    我有一个简单的表单 只有一个文本框和一个提交按钮 该表单基本上将文本框中的值作为查询字符串发送到不同的页面 当我单击提交按钮时 查询字符串采用以下格式 例如 mysite com TargetCode Test1 我希望它以这种格式显示 m
  • 重载控制器动作

    几分钟前 当我尝试在我的一个控制器中重载操作时 我有点惊讶 I had public ActionResult Get return PartialView return all things I added public ActionRe
  • 如何读取扩展文件属性/文件元数据

    因此 我按照教程使用 ASP net core 将文件 上传 到本地路径 这是代码 public IActionResult About IList

随机推荐