2016-02-22 140 views
0

您好我目前使用Sitecore 8.1更新1与MVC5.2.3和玻璃映射器。我在Glass Mapper链接字段中遇到了一些问题。我已经创建了一个模板,该模板来自标准渲染参数模板,其中我已经使用了Sitecore General Link字段。此外,我已经创建的模型为:Sitecore玻璃映射器链接字段不能编辑页编辑器模式

我的模型:

[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还是我犯了什么错误?

谢谢。 将感谢您的建议。

+0

是否有你的日志文件的任何错误?检查浏览器控制台和AJAX/xhr调用,并检查响应消息,告诉我们正在抛出什么错误。 – jammykam

+0

您的'RelatedArticleParams'类拥有'HeaderText'属性,但您的视图使用'@ parameters.Text'。这在创建SO问题时只是一个错字,还是真正的代码? –

+0

使用BeginRenderLink或可编辑。 – ASura

回答

2

您应该使用
@Editable(玻璃贴图的属性名称)//使用Model属性。

Reference

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> 
相关问题