【问题标题】:Sitecore 8 MVC : How to make the field editable in Page EditorSitecore 8 MVC:如何在页面编辑器中使字段可编辑
【发布时间】:2015-10-15 09:57:26
【问题描述】:

我正在尝试使我的 Sitecore 网站与页面编辑器兼容,即所有字段文本、富文本编辑器等都应该能够在页面编辑器中更新。

到目前为止,我已经修改了 TDS T4 模板,该模板为每个字段返回一个 HTMLString,如下所示:

public HtmlString HeroImageField(bool isEditable = true, string parameters = "")
{ 
    string renderParameter = GenerateRenderParameter(isEditable, parameters);

    return new HtmlString(Sitecore.Web.UI.WebControls.FieldRenderer.Render(
        Sitecore.Context.Database.GetItem(this.EntityId.ToString()), "Hero Image", renderParameter ));
}

所以,鉴于我只是打电话给Model.HeroImage()

有没有更好的方法来实现上述目标?也许 Glass Mapper 对此提供了开箱即用的支持(我不知道)。

【问题讨论】:

  • 那么,在调试器您的示例中从 FieldRenderer 返回了什么?您如何尝试在您的视图中使用它?
  • 您编辑了哪些 TDS T4 模板?是这些TDS Codegen templates吗?如果是这样,您不需要编辑它们,只是您的用法不正确,就像 RvanDalen 回答的那样。
  • @MartinMiles,在看来它将被用作 Model.HeroImageField(true, "wd=200,ht=300")

标签: sitecore sitecore8 glass-mapper sitecore-mvc


【解决方案1】:

Sitecore 附带 MVC 帮助程序,您可以使用这些帮助程序使字段可编辑:

@Html.Sitecore().Field("My Field Name") //Context item by default
@Html.Sitecore().Field("My Field Name", Model.PageItem) //Explicit page item
@Html.Sitecore().Field("My Field Name", Model.Item) //Datasource item (may be context item)

我的建议也是使用控制器来加载不同的视图进行编辑。创作字段通常需要不同的视觉效果。轮播/标签应该展平,验证消息需要公开,等等。

查看更多信息: http://sitecore-community.github.io/docs/sitecore-mvc/rendering-content/

【讨论】:

    【解决方案2】:

    玻璃映射器为此提供了一些 OOTB 功能。您可以使用扩展的WebViewPage GlassView 并使用Editable 方法,如下所述: http://glass.lu/Mapper/Sc/Tutorials/Tutorial14

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多