是否可以在 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 中使用剃刀布局并绕过主题 的相关文章

  • 在 asp.net mvc 4 中使用 LinkedIn OAuth“登录失败”

    我正在查看 asp net mvc 4 附带的默认 OAuth 实现 它绝对令人印象深刻 因为我所要做的就是在 AuthConfig cs 中添加这一行 OAuthWebSecurity RegisterLinkedInClient key
  • mvc 登录尝试失败后生成验证码

    所以我能够让我的验证码工作正常工作 但我的问题是 我想让它只在 3 次尝试后出现 我的一个选择是将用户重定向到一个已经有验证码的视图 重复登录 但带有验证码 然后让他通过该页面登录 还有其他选择吗 我觉得部分视图会导致页面发布出现问题 您认
  • JQuery - 使用 JSON 的属性创建输入

    我正在尝试使用 JSON 设置的 id 和 value 属性创建一个输入 我有一个获取 JSON 的 ajax 调用 返回的数据很好 对于 JSON 中的每个对象 我想创建一个带有 ID 和 JSON 值的按钮 阿贾克斯调用 ajax ty
  • 在ConfigureServices中注入依赖

    在我的 ASP Net Core 应用程序中 我需要在以下位置注入一些依赖项 在我的例子中是一个存储库 ConfigureServices method 问题是该方法不允许使用多个参数来注入依赖项 该怎么办呢 这是我的代码 public v
  • 身份服务器刷新令牌资源所有者密码凭证流程

    我正在使用 IdentityServer 来控制对 API 的访问 我有一个单独的身份验证 API 它发出令牌并验证访问请求以确保 API 的安全 我让用户能够通过安全的 Web 应用程序生成访问令牌 我正在使用资源所有者密码凭证流程 有没
  • _Layout.cshtml无法直接请求,因为它调用了“RenderBody”方法

    我使用属性来路由 这是否相关 我不知道 当我不使用 Route 属性时 共享控制器中的 Layaout 操作不起作用 但页面正在呈现 public class SharedController Controller GET Shared A
  • MVC3 TextBoxFor 带有编码文本

    有没有办法将 TextBoxFor 助手与编码文本一起使用 例如 当使用 MVC3 With Razor 视图引擎的以下帮助程序时 Html TextBoxFor model gt model Description 并且对 model D
  • 如何使用自定义 ValidationAttribute 来确保两个属性匹配?

    我们使用 xVal 和标准DataAnnotationsValidationRunner描述here http blog stevensanderson com 2009 01 10 xval a validation framework
  • PostAsync 方法的 HttpClient 错误

    使用 HttpClient 对第 3 方 API 进行 PostAsync 调用时 当我执行 client PostAsync 时 我正好看到此错误 知道是什么原因造成的吗 Code public class JobController A
  • ASP.NET MVC 和 Expression XAML - 如何集成?

    一些背景 ASP net MVC 主要是构建和开发 ASP NET 应用程序方式的范式转变 从 代码隐藏 类型的心态转变为更像标准 MVC Ruby on Rails 的心态 我赞扬它作为一种简化工具来简化单元测试和代码分离 尽管 html
  • asp.net mvc:将 RedirectToAction(string, object) 转换为 RedirectToAction(x => x.Detail(id))

    任何人都知道如何创建一个方法 我将把它放在扩展类中 该方法将仅使用表达式 无魔术字符串 与 mvc 的 RedirectToAction 执行相同的操作 所以不要写这样的东西 RedirectToAction Detail new Rout
  • Visual Studio 智能感知搞砸了

    所以我是 MVC4 和 C 的新手 我已经设计这个网站大约两周了 智能感知没有任何问题 两天来 Visual studio 告诉我 Viewbag 和其他 命令不是我的项目的一部分 我可能错过了一些东西 或者它告诉我 Viewbag 在当前
  • IsReusable 属性中的上下文切换

    是否可重用属性 下面是我的理解IsReusable财产 如果处理程序返回静态内容 将值设置为 true 是安全的 但如果线程返回动态内容 为了使其线程安全 IsReusable应设置为 false 在这种情况下 可能会发生上下文切换 这可能
  • 从 MVC 控制器调用 Web API

    我的 MVC 5 项目解决方案中有一个 Web API 控制器 WebAPI 有一个方法可以将特定文件夹中的所有文件作为 Json 列表返回 name file1 zip path c 从我的 HomeController 我想调用这个方法
  • 有没有办法让 DefaultModelBinder 在绑定到 List 时忽略空项

    我有一个场景 我想更改 DefaultModelBinder 绑定到枚举列表的方式的行为 我有一个枚举 public enum MyEnum FirstVal SecondVal ThirdVal 和一个模型类 public class M
  • 构建视图模型的最佳方法是什么?

    我正在使用带有实体框架的 asp net mvc 并开始学习 DDD 我正在从事包含调查的项目 这是我的域模型 public class Survey public int SurveyID get set public string Na
  • 如何从 asp.net MVC 4 应用程序中的 FileResult 方法返回错误消息?

    我在 asp net mvc4 中有一个 fileresult 方法 它返回 Excel 文件中的报告 现在 如果不满足我的条件 我如何从该方法返回错误消息 既然我们只能从这个方法返回一个文件 谢谢 您可以将操作方法 的签名更改为publi
  • 在 CSHTML 页面中实现 switch 语句

    我正在尝试做一些不同的事情 我有一个包含 ID 的视图 根据 Id 的值 我想更改显示的标题 就像是 switch id case test h1 Test Site h1 case prod h1 Prod Site h1 break 我
  • 发布时出错:System.DirectoryServices.DirectoryServicesCOMException

    我在我的 asp net MVC 解决方案中使用 AD 身份验证 它在本地服务器中工作 但是当我发布它时 我收到错误 System DirectoryServices DirectoryServicesCOMException 发生操作错误
  • asp.net mvc 主要细节

    我想使用 ASP NET MVC Entity Framework 创建一个用于订单输入的网页 此页面包含订单和订单输入信息 对于每个订单 我可以有多个订单详细信息 如果您知道如何使用 ASP NET MVC Entity Framewor

随机推荐