Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
OrchardCMS从形状别名中的CustomType对象获取附着的布局零件_Orchardcms - Fatal编程技术网

OrchardCMS从形状别名中的CustomType对象获取附着的布局零件

OrchardCMS从形状别名中的CustomType对象获取附着的布局零件,orchardcms,Orchardcms,我正在尝试为我的Orchard网站构建一个组件。 我正在使用自定义ContentType和形状跟踪。 它的运行与我预期的完全一样,但其中一个部分是LayoutPart。 我用来生成组件HTML结构的所有其他字段。 在它的中心,我将显示用户在它中间的LayoutPart中放入的任何内容 编辑 缺少Placement.info文本。 /EDIT ContentType具有以下字段(我正在使用这些字段构建html): ID(文本) NextItem(NextItem) ModuleType(文本)

我正在尝试为我的Orchard网站构建一个组件。 我正在使用自定义ContentType和形状跟踪。 它的运行与我预期的完全一样,但其中一个部分是
LayoutPart
。 我用来生成组件HTML结构的所有其他字段。 在它的中心,我将显示用户在它中间的
LayoutPart
中放入的任何内容

编辑 缺少Placement.info文本。 /EDIT

ContentType具有以下字段(我正在使用这些字段构建html):

  • ID(文本)
  • NextItem(NextItem)
  • ModuleType(文本)
  • 背景图片媒体图片
以及以下内容

  • 共同的
  • 导航部件
  • 布局部分
我需要的是来自模型对象的LayoutPart,这样我就可以将它的内容放在cshtml的div中
BuildDisplay(布局部分,“显示类型”)

我试着翻阅文档,用谷歌搜索。 我怀疑,因为我对Orchard和Razor都是新手,所以我还没有掌握正确的词汇

修正了,谢谢! 这是我的最终代码:

@使用Orchard.Utility.Extensions;
@采用果园管理;
@使用Orchard.Layouts.Models;
@使用Orchard.DisplayManagement.Shapes
@使用Orchard.Layouts.Helpers;
@{
var标签=标签(型号,“div”);
var id=Model.Content.Items[0]。值;
var css=Model.Content.Items[1].ContentField.Value;
var nextID=Model.Content.Items[2].ContentField.Value;
var backgroundPath=Model.Content.Items[3].ContentField.FirstMediaUrl;
var customstyle=“”;
如果(css==“模块英雄”)
{
css=“模块英雄全高度视差”;
customstyle=“背景图像:url(“+backgroundPath+”);背景大小:封面;背景附件:固定;背景位置:居中;背景重复:无重复;”;
}
else if(css==“模块伙伴”)
{
customstyle=“背景图像:url(“+backgroundPath+”);背景大小:封面;背景位置:相对;背景重复:不重复;溢出:隐藏;”;
}
}
@星电信
@显示器(型号视差超标)
@tag.EndElement

你要找的是形状调整。这里有一个介绍

其思路如下:

  • 您想在页面上移动一个部分,但不想完全控制它的呈现,您只想将现有位移动到页面上的其他位置
形状重新定位 首先,在视图中创建一个新区域,根据需要命名。在您的情况下,它看起来像这样:

<div id="@id" style="background: url(@backgroundPath)" class="@css">
    <div class="container">
        <div class="row">
            <div class="col-sm-12 m-t-250">
                @Display(Model.MyNewCustomLayoutZone)
                <div class="btn-list">
                    <a href="#@nextID" class="btn btn-outline smoothscroll"><i style="font-size: 60px" class="fa fa-angle-down"></i></a>
                </div>
            </div>
        </div>
    </div>
</div>
<Match ContentType="MyCustomContentType">
   <Match DisplayType="Detail">
      <Place Fields_Common_Text-ID="-" />
      <Place Fields_NextItem-NextItem="-" />
      <Place Fields_Common_Text-ModuleType="-" />
      <Place Fields_MediaLibraryPicker-BackGroundImage="-" />
   </Match>
</Match>
其中,
MyCustomContentType
是您在第一步中所称的新内容类型,
MyNewCustomLayoutZone
是您在第一步中所称的新区域

你如何找到零件布局位? 打开“形状跟踪”工具,转到要移动的零件/字段

在第一个选项卡中,您将看到一个条目形状,它告诉您这一点

实际上,您可以使用相同的技术在字段中移动

您不需要每次都创建一个新分区,您可以使用现有分区,例如:

<Place Parts_Layout="Footer" />

你要找的是形状调整。这里有一个介绍

其思路如下:

  • 您想在页面上移动一个部分,但不想完全控制它的呈现,您只想将现有位移动到页面上的其他位置
形状重新定位 首先,在视图中创建一个新区域,根据需要命名。在您的情况下,它看起来像这样:

<div id="@id" style="background: url(@backgroundPath)" class="@css">
    <div class="container">
        <div class="row">
            <div class="col-sm-12 m-t-250">
                @Display(Model.MyNewCustomLayoutZone)
                <div class="btn-list">
                    <a href="#@nextID" class="btn btn-outline smoothscroll"><i style="font-size: 60px" class="fa fa-angle-down"></i></a>
                </div>
            </div>
        </div>
    </div>
</div>
<Match ContentType="MyCustomContentType">
   <Match DisplayType="Detail">
      <Place Fields_Common_Text-ID="-" />
      <Place Fields_NextItem-NextItem="-" />
      <Place Fields_Common_Text-ModuleType="-" />
      <Place Fields_MediaLibraryPicker-BackGroundImage="-" />
   </Match>
</Match>
其中,
MyCustomContentType
是您在第一步中所称的新内容类型,
MyNewCustomLayoutZone
是您在第一步中所称的新区域

你如何找到零件布局位? 打开“形状跟踪”工具,转到要移动的零件/字段

在第一个选项卡中,您将看到一个条目形状,它告诉您这一点

实际上,您可以使用相同的技术在字段中移动

您不需要每次都创建一个新分区,您可以使用现有分区,例如:

<Place Parts_Layout="Footer" />

谢谢您的编辑。:)我在让stack exchange接受我的代码部分时遇到问题。这是令人沮丧的,因为我直接从VisualStudio剪切并粘贴了它,所有的格式都很好。:)谢谢您的编辑。:)我在让stack exchange接受我的代码部分时遇到问题。这是令人沮丧的,因为我直接从VisualStudio剪切并粘贴了它,所有的格式都很好。:)字段的名称为:ItemID、ModuleType、BackgroundImage、NextItemRefVar id=Model.Content.ItemID.Value;给出并出错“Model.Content.ItemID.Value'Model.Content.ItemID.Value'引发了类型为'Microsoft.CSharp.RuntimeBinder.RuntimeBinderException'dynamic{Microsoft.CSharp.RuntimeBinder.RuntimeBinderException}的异常,var part=Model.ContentItem.Content.LayoutPart;给出错误“无法将类型”System.Web.HtmlString“隐式转换为”字符串“layoutPart=BuildDisplay(part);gives error无法将类型“Orchard.UI.Zones.ZoneHolding”隐式转换为“string”。我不是在问字段部分,我想有更好的方法。但由于我是目前唯一的编码员,该部分暂时可以工作。我现在只需要布局我添加到我创建的ContentType中的部分。我不想要全部内容他们放在那里的任何东西都呈现为html。希望我能发布图片。字段的名称是:ItemID、ModuleType、BackgroundImage、NextItemRefVar id=Model.Content.ItemID.Value;给出和错误“Model.Content.ItemID”。