2016-02-22 58 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> 
相關問題