与Sitecore Glass Mapper一起使用模板继承时,如何在PageEditor中呈现字段

时间:2013-10-25 11:25:25

标签: c# rendering sitecore page-editor glass-mapper

我的解决方案中有以下设置,在之前的帖子中描述:

How to implement Sitecore Template inheritance with Glass Mapper

我现在可以显示继承字段的内容。但是,当我尝试在页面编辑器中编辑它们时,EditFrame不会呈现,实际上没有任何内容呈现。不知道我还缺少什么。这是我的控制器和视图:

控制器:

public class NavigationController : Controller
{
    // GET: /Navigation/

    public ActionResult Index()
    {
        var context = new SitecoreContext();
        var page = context.GetCurrentItem<HomePage>();

        return View("/Views/Navigation.cshtml", page);
    }
}

查看:

@inherits Glass.Mapper.Sc.Web.Mvc.GlassView<Sitecore.Training7.Internet.Core.Models.HomePage>
@if (Model != null)
{
     <h3 class="text-muted">Field: @Editable(x => x.NavigationTitle)</h3>
}

当我点击预览按钮时会显示该值,但我看不到PageEditor中的值。我还在这里缺少什么?有什么想法吗?

2 个答案:

答案 0 :(得分:1)

这只是基于您在其他帖子中包含的HomePage模型的猜测,但我认为您需要为模型添加ID属性。见http://glass.lu/docs/tutorial/sitecore/tutorial05/tutorial05.html

答案 1 :(得分:0)

我现在看到您的其他帖子,请添加ID:

    [SitecoreId]
    Guid Id{ get; }

在页面编辑器模式下,sitecore将要求映射的Id知道该值属于哪个项目。所以你需要将它添加到你的模型中。 如果您正在使用TDS或类似的东西 - 默认情况下,您将看到默认情况下在所有模型类的基类中添加该属性。