加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

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

发布时间:2020-12-16 06:48:48 所属栏目:asp.Net 来源:网络整理
导读:一点背景 我们有一个最近使用的MVC4 Web应用程序,我们想要移植到Orchard CMS.即使这是一个“管理”类型的应用程序,我们也不希望它成为Orchard管理部分的一部分.这个应用程序目前正在运行,我们希望移动到Orchard尽可能对最终用户不可见. 我们现在在哪里 我们
一点背景

我们有一个最近使用的MVC4 Web应用程序,我们想要移植到Orchard CMS.即使这是一个“管理”类型的应用程序,我们也不希望它成为Orchard管理部分的一部分.这个应用程序目前正在运行,我们希望移动到Orchard尽可能对最终用户不可见.

我们现在在哪里

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

解决方法

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

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

警告:你不能使用更新的@model directiv.我只是回到原来的风格,把我的模型放在“对象”的位置:

@using Namesapce.ViewModels
@inherits System.Web.Mvc.WebViewPage<MyViewModel>

否则,创建一个主题并覆盖Orchard的任何形状都非常简单.我有两种方法:

>创建一个简单的主题,覆盖形状(说你想要一个不同的登录,只需在主题的?/ View中创建Login.cshtml文件夹),使用替代(使用Layout-homepage.cshtml覆盖主页的布局),有你的.css等;>使用一些技巧用模块中的代码覆盖主题,然后创建您自己的主题文件夹中的视图和形状.例如,您可以在主题中使用Layout.cshtml文件,其中包含显示形状的代码.但是,形状本身(.cshtml文件)存在于您的模块中,这对于使用仪表板类型主题非常有用调用在不同模块中命名相同的形状但是显示不同的内容.这个代码更深入一些.只要问你是否需要样品.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读