无法通过页面编辑器模式

时间:2016-02-22 10:15:38

标签: sitecore sitecore8 asp.net-mvc-5.2 glass-mapper

您好我正在使用Sitecore 8.1更新1与MVC5.2.3和Glass Mapper。我在Glass Mapper链接字段中遇到了一些问题。我创建了一个模板,该模板源自标准渲染参数模板,其中我使用了Sitecore General Link字段。我也为此创建了模型:

我的模特:

[SitecoreType(TemplateId = "{912B074D-F8BA-4AA7-9276-016515A1ACE8}")]
public class RelatedArticleParams
{
     [SitecoreId]
     public virtual Guid Id { get; set; }

     public virtual string HeaderText { get; set; }

     [SitecoreField(FieldType = SitecoreFieldType.GeneralLink)]
     public Link Link { get; set; }
}

我的观点:

@{
    var parameters = GetRenderingParameters<RelatedArticleParams>();
}
<a href="@parameters.Link.Url" class="linkdark">@parameters.Text</a>

如果我在Sitecore后端添加演示文稿详细信息中的链接,那么一切都很好。但是,当我在Sitecore页面体验编辑器中单击此组件并插入到渲染参数的链接时,它将在页面顶部显示错误发生的红线指示。我无法从页面编辑器模式插入链接。

请帮我解决这个问题,无论是Glass Mapper bug还是我犯了错误?

感谢。 非常感谢您的建议。

3 个答案:

答案 0 :(得分:4)

另一种选择是在代码中完成。

public class MyViewModel
{
    public HtmlString MyLink { get; set; }
}
public class MyController : Controller
{
    private readonly IGlassHtml _glassHtmlHelper;
    public void MyController()
    {
        _glassHtmlHelper = new GlassHtml(new SitecoreContext());
    }
    public ViewResult MyControllerAction()
    {
        var viewModel = new MyViewModel();
        //Get your item
        viewModel.MyLink = new HtmlString(_glassHtmlHelper.RenderLink<RelatedArticleParams>(contentItem, x => x.Link, isEditable: true));
        return View(viewModel);
    }
}

然后,在你的标记中,你所要做的就是:

@model MyViewModel
<div>
    @Model.MyLink
</div>

答案 1 :(得分:2)

你应该使用
@Editable(glass mapper的属性名称)//使用Model属性。

Reference

答案 2 :(得分:2)

使用

@RenderLink(x =&gt; x.Link)

@using (BeginRenderLink(x => x.GeneralLink, isEditable: true))
{
    @RenderImage(x => x.Image)
}

http://glass.lu/Mapper/Sc/Tutorials/Tutorial22