2015-09-01 139 views
2

我試圖從自定義模型中輸出鏈接和鏈接文本,以便在頁面編輯器中進行編輯。它通常工作正常,但不在頁面編輯器中。 在我的模型類我有2個字符串是這樣的:頁面編輯器中的Sitecore MVC可編輯鏈接

public string Link { get; set; } 
public string LinkText { get; set; } 

我儘量使文本編輯在這樣的倉庫:

model.LinkText = FieldRenderer.Render(item, "Link Text"); 
model.Link = LinkManager.getItemUrl(item); 

在我的.cshtml文件我很喜歡輸出領域這個:

<a href="@Model.Link>@Model.LinkText<a/> 

我是這樣做錯誤的方式還是我可以得到這個代碼工作一些調整?

回答

3

要讓編輯在頁面編輯器中工作,您需要更改屬性的類型。

變化

public string Link { get; set; } 

public IHtmlString Link { get; set; } 

這將使MVC來渲染頁面編輯器的HTML組件。這應該處理頁面編輯器中的鏈接文本。

要使鏈接可編輯將取決於字段類型是什麼。

+0

我不需要使鏈接可編輯,所以你建議完美的作品。謝謝 – Aeterna

1

這取決於您在模板上使用的字段類型。

如果您使用的是通用鏈接字段您需要在模型中爲鏈接(類型爲HtmlString)使用單個屬性。你初始化你的'LinkText'屬性的方式很好。在你的剃鬚刀代碼中,你只需使用@ Model.PropertyName。

如果您對目標頁面和鏈接文本使用兩個單獨的字段,則需要使用編輯框(不能確定mvc等同於此)還是使用自定義頁面編輯器按鈕來打開彈出窗口字段可以編輯內容編輯器樣式。

0

嘗試像這樣,鏈接字段應該是通用鏈接。 :

@using (BeginRenderLink(x => x.Link, isEditable: true)) 
{ 
    @Editable(x => x.Title); 
} 
+0

你假設OP使用他沒有提到過的'Glass.Mapper'。 – Jawad

+0

是的,我只是注意到:) –

相關問題