- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我创建了一个内容部分,并将其添加到内容类型。当我创建内容类型时,与其他字段不同,不会显示内容部分。没有编译或记录错误,内容部分已添加到placement.info。
驱动程序:
[UsedImplicitly]
public class TradeItemPartDriver: ContentPartDriver<TradeItemPart>
{
private readonly ITradeItemService _tradeItemService;
private const string TemplateName = "Parts/TradeItem";
public TradeItemPartDriver(ITradeItemService tradeItemService)
{
_tradeItemService = tradeItemService;
}
protected override string Prefix
{
get { return "TradeItem"; }
}
protected override DriverResult Display(
TradeItemPart part,
string displayType,
dynamic shapeHelper)
{
return ContentShape("Parts_TradeItem",
() => shapeHelper.Parts_TradeItem(
ContentPart: part));
}
protected override DriverResult Editor(
TradeItemPart part,
dynamic shapeHelper)
{
var shape = ContentShape("Parts_TradeItem_Edit",
() => shapeHelper.EditorTemplate(
TemplateName: TemplateName,
Model: BuildEditorViewModel(part),
Prefix: Prefix));
return shape;
}
protected override DriverResult Editor(
TradeItemPart part,
IUpdateModel updater,
dynamic shapeHelper)
{
var model = new EditTradeItemViewModel();
updater.TryUpdateModel(model, Prefix, null, null);
if (part.ContentItem.Id != 0)
{
_tradeItemService.UpdateTradeItemForContentItem(
part.ContentItem, model);
}
return Editor(part, shapeHelper);
}
private EditTradeItemViewModel BuildEditorViewModel(TradeItemPart part)
{
var model = new EditTradeItemViewModel
{
Code = part.Code, Cost= part.Cost, Unit = part.Unit, Weight = part.Weight,
UnitsList = _tradeItemService.GetUnitTypes()
};
return model;
}
}
处理程序:
public class TradeItemPartHandler : ContentHandler
{
public TradeItemPartHandler(IRepository<TradeItemPartRecord> repository)
{
Filters.Add(StorageFilter.For(repository));
}
}
型号:
public enum EnumTradeItemUnit : byte
{
Шт = 0,
Кг = 1,
Литр = 2,
Упаковка = 3
}
public class TradeItemPartRecord : ContentPartRecord
{
public virtual string Code { get; set; }
public virtual decimal Weight { get; set; }
public virtual decimal Cost { get; set; }
public virtual int Unit { get; set; }
}
public class TradeItemPart : ContentPart<TradeItemPartRecord>
{
public virtual string Code { get; set; }
public virtual decimal Weight { get; set; }
public virtual decimal Cost { get; set; }
public virtual EnumTradeItemUnit Unit { get; set; }
}
服务:
public interface ITradeItemService: IDependency
{
//IEnumerable<TradeItemPart> GetTradeItems();
SelectList GetUnitTypes();
void UpdateTradeItemForContentItem(
ContentItem item,
EditTradeItemViewModel model);
}
public class TradeItemService : ITradeItemService
{
private readonly IContentManager _contentManager;
private readonly IRepository<TradeItemPartRecord> _tradeItemsRepository;
public TradeItemService(IContentManager contentManager, IRepository<TradeItemPartRecord> tradeItemsRepository)
{
_contentManager = contentManager;
_tradeItemsRepository = tradeItemsRepository;
}
public SelectList GetUnitTypes()
{
return new SelectList(
Enum.GetValues(typeof(EnumTradeItemUnit)).Cast<EnumTradeItemUnit>().Select
(it =>
new SelectListItem() { Value = ((byte)it).ToString(), Text = it.ToString() }));
}
public void UpdateTradeItemForContentItem(
ContentItem item,
EditTradeItemViewModel model)
{
var part = item.As<TradeItemPart>();
part.Code = model.Code;
part.Cost = model.Cost;
part.Unit = model.Unit;
part.Weight = model.Weight;
}
}
View 模型:
public class EditTradeItemViewModel
{
[StringLength(10), WebDisplayName("Код")]
public virtual string Code { get; set; }
[Required, Range(0, 100, ErrorMessage = "Товары тяжелее 100кг пусть более крутые ребята возят"), WebDisplayName("Вес")]
public virtual decimal Weight { get; set; }
[Required, Range(0.01, 100000, ErrorMessage = "Товары дороже 100тыс.р. пусть более крутые ребята возят"), WebDisplayName("Цена")]
public virtual decimal Cost { get; set; }
[Required, WebDisplayName("Единица измерения")]
public virtual EnumTradeItemUnit Unit { get; set; }
public virtual SelectList UnitsList { get; set; }
}
~/Views/EditorTemplates/Parts/TradeItem.cshtml
@model Delivery.ViewModels.EditTradeItemViewModel
<fieldset>
<legend>@T("Характеристики")</legend>
<div class="editor-label">
@Html.LabelFor(model => model.Code, T("Код"))
</div>
<div class="editor-field">
@Html.TextBoxFor(model => model.Code)
@Html.ValidationMessageFor(model => model.Code)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.Unit, T("Единица измерения"))
</div>
<div class="editor-field">
@Html.DropDownListFor(model => model.Unit, Model.UnitsList)
@Html.ValidationMessageFor(model => model.Unit)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.Cost, T("Стоимость"))
</div>
<div class="editor-field">
@Html.TextBoxFor(model => model.Cost)
@Html.ValidationMessageFor(model => model.Cost)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.Weight, T("Вес одной единицы"))
</div>
<div class="editor-field">
@Html.TextBoxFor(model => model.Weight)
@Html.ValidationMessageFor(model => model.Weight)
</div>
</fieldset>
展示位置:
<Placement>
<Place Parts_TradeItem_Edit="Content:10"/>
<Place Parts_TradeItem="Content:10"/>
</Placement>
迁移:
SchemaBuilder.CreateTable("TradeItemRecord",
table => table
.ContentPartRecord()
.Column<string>("Code", column => column.WithLength(10))
.Column<decimal>("Weight", column => column.WithPrecision(8).WithScale(2))
.Column<decimal>("Cost", column => column.WithPrecision(8).WithScale(2))
.Column<byte>("Unit")
);
ContentDefinitionManager.AlterPartDefinition("TradeItem",
builder => builder.Attachable());
最佳答案
您的代码通常有 2 个问题。
首先,在迁移中,您将该部件称为 TradeItem
,而在模型中,您将其称为 TradeItemPart
。更改其中之一将解决编辑器中不显示任何内容的问题。
这导致我们遇到第二个问题,它将禁止保存您的任何数据。您未将 TradeItemPart
与 TradeItemPartRecord
连接。要解决此问题,您需要调整 TradeItemPart
使其如下所示:
public class TradeItemPart : ContentPart<TradeItemPartRecord>
{
public string Code {
get { return Record.Code; }
set { Record.Code = value; }
}
public decimal Weight {
get { return Record.Weight; }
set { Record.Weight = value; }
}
public decimal Cost {
get { return Record.Cost; }
set { Record.Cost = value; }
}
public EnumTradeItemUnit Unit {
get { return (EnumTradeItemUnit)Record.Unit; }
set { Record.Unit = (int)value; }
}
}
我也不确定 Orchard 是否会正确地将 byte
类型的列关联到 int
类型。如果上述更改不起作用,请尝试将 Unit
列的列类型更改为 int
。
关于asp.net-mvc - Orchard CMS : Content part not displayed,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13238123/
Episerver CMS,我想使用 CMS 发布一个简单的通知模式。我不熟悉 CMS。是否有一些网站可以指导我了解 Episerver CMS 的工作原理。向移动网站发布新内容和新模式 最佳答案 您
我喜欢 Drupal 中的分类法,并考虑在其上为一个已经上线多年的网站构建一个 CMS。我想保留数据库原样(它是 mySQL),以确保旧的 CMS 也能正常工作 - 一些使用它的人不愿意学习新东西。相
我正在使用 DjnagoCMS 3,但所有编辑弹出窗口都有烦人的问题。当页面内容大于(高于)浏览器窗口时会发生这种情况。当我尝试编辑文本或任何 cms 插件(双击内容)时,它会显示弹出窗口,但它的高度
我正在按照官方 Introductory Tutorial 创建一个带有 Django-Cms 的网站。我在前端的编辑模式上遇到了一些问题。首先,顶部横幅没有显示,占位符上的编辑菜单全部损坏。 我做的
我按照说明在我的 Mac 上安装了 Django CMS。当我运行“manage.py cms check”时,一切正常,只是它说找不到 template_1.html。当我进入管理员创建页面时,模板
我是 Django 的新手....经过几个小时的努力,我设法在虚拟环境中安装了 django cms。创建一些模板并将一些页面添加到我的 cms。现在我正在尝试添加一些 css....我已经创建了一个
运行 django-cms 2.4.0-RC1、django 1.5.1 和 python 2.7 的全新安装。我正在尝试使用单个字段创建一个非常简单的自定义插件。该插件在管理员中注册并且工作正常。它
我意识到 django-cms 的重点是没有内容类型并将所有内容都视为页面,但暂时忽略这一点,我将如何将它们添加到 django-cms 中?通过“内容类型”,我的意思是一些行为很像 Page 对象的
我按照说明在我的 Mac 上安装了 Django CMS。当我运行“manage.py cms check”时,一切正常,只是它说找不到 template_1.html。当我进入管理员创建页面时,模板
我正在为客户创建一个 django-cms 站点。我想做类似的事情: 想要的效果是有一个地方,CMS 的用户可以为页面选择背景图像。理想情况下,他们会选择使用类似 Filer 的现有图片。 . 有没
我们在 Django-CMS 中构建了一个网站,并开发了一个带有替代 CSS 的移动版本以适应较小的查看区域。除了通常的导航栏外,我们还希望在每个页面的底部包含下一页和上一页链接。 我知道如何使用这段
这是我在管理模式下尝试更改页面的高级设置时遇到的错误: TypeError at /admin/cms/page/5/advanced-settings/ __str__ returned non-s
我有一个 Orchard CMS 应用程序。我想在主页之外创建多个页面。我想在其他页面上显示一个菜单。用户登录时,应根据其角色显示菜单。有人可以给我解决方案吗? 最佳答案 您可以通过选择 在管理仪表板
如何在 Bolt 中列出分类法中的所有术语?不是应用于记录的术语而是所有现有术语(如标签云或类别列表侧边菜单)? 最佳答案 直接在模板中,可以这样做: {% for category in app.c
我正在构建一个非常简单的网络托管服务,以满足 ma 和 pa 类型的小型企业的需求。 现在我的两难选择是我应该从头开始构建它还是使用现有的 CMS。 CMS 需要可定制,因为我希望构建自己的客户端。我
我有文档类型产品,字段为:图像和文本。我想使用 CMS 转发器将 webpart 添加到 kentico,显示所有文档产品,但我想只显示包含图像的文档(不需要字段图像)。我添加了一行 WhereCon
我目前正在为我的个人项目开发一个非常基础的 CMS。这对我自己的教育和任何事情一样重要。我的一个问题是如何在没有文件扩展名的情况下实现 url/永久链接。我了解使用获取变量从数据库中提取数据,但是如何
Piranha 和 Vue 非常新,但不是 .Net Core。试图让我了解如何创建自定义块。我创建了一个新块,试图将 HtmlBlock 和 ImageBlock 结合起来: using Piran
我有两对不同的 CMS 和 CDS。一个在本地网络上,一个在公共(public)域上。我正在向本地网络上的 CMS 添加新的目标类型。此新目标类型的属性包含位于公共(public)域中的 CDS 的
我想使用一些基于 ASP.NET 的 CMS 来创建我的网站,但不知道该选择哪个... 我在 Sitefinity 中开始它,但是很难按照您想要的方式管理代码...并且它会生成 ASP.NET Web
我是一名优秀的程序员,十分优秀!