Sitecore 8 MVC:如何在页面编辑器中使字段可编辑

Sitecore 8 MVC:如何在页面编辑器中使字段可编辑,sitecore,sitecore8,glass-mapper,sitecore-mvc,Sitecore,Sitecore8,Glass Mapper,Sitecore Mvc,我正在尝试使我的Sitecore站点与页面编辑器兼容,即所有文本、富文本编辑器等字段都应该能够在页面编辑器中更新 到目前为止,我已经修改了TDS T4模板,它为每个字段返回一个HTMLString,如下所示: public HtmlString HeroImageField(bool isEditable = true, string parameters = "") { string renderParameter = GenerateRenderParameter(isEditab

我正在尝试使我的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.hegomage()


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

Glass Mapper为此提供了一些OOTB支持。您可以使用扩展的
WebViewPage
GlassView
,并使用
Editable
方法,如下所述:
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)
我还建议使用控制器加载不同的视图进行编辑。创作字段通常需要不同的视觉效果。转盘/标签应展平,验证消息需要公开,等等

更多信息,请访问:

那么,在您的示例中,FieldRenderer返回了什么?您是如何尝试在视图中使用它的?您编辑了哪些TDS T4模板?是这些吗?如果是这样,您不需要编辑它们,只是您的用法不正确,就像RvanDalen回答的那样。@MartinMiles,在视图中它将用作Model.海洛因字段(true,“wd=200,ht=300”)