1

您好我正在Umbraco 7中使用引導輪播。我有一個自定義媒體類型,其中有一個屬性稱爲鏈接類型是鏈接選擇器。我想顯示鏈接,但我目前使用的代碼給了我一個404錯誤,因爲它將json放在鏈接中。任何人都可以告訴我檢索鏈接的正確方法。從umbraco中的自定義屬性值獲取鏈接7

@if(@imageItem.GetPropertyValue("linkPicker")!=null){<a href="@imageItem.GetPropertyValue("linkPicker")" style="color:#000;border-radius: 4px; padding:5px;background: rgb(255, 191, 0);float:left;">Find out more</a>} 

在此先感謝 娜塔莎

+0

你知道linkpicker是什麼數據類型嗎? Is是一個插件的默認相關鏈接或linkpicker嗎? –

+0

嗨,彼得這是一個插件的鏈接器 – user3351677

+0

哪一個?一些插件有助手,其他的你必須閱讀json。 –

回答

0

的問題是關於一把umbraco鏈路選擇器插件在這裏找到:https://github.com/Gibe/Umbraco-Link-Picker

創建的模型,因此可以使用,所以你可以使用鏈路選擇器強類型。 (使用Newtonsoft.Json或Newtonsoft.Json.Linq我認爲)

public class LinkPickerModel 
{ 
    public LinkPickerModel(string json) 
    { 
     JToken jToken = JToken.Parse(json); 

     Id = (int)jToken["id"]; 
     Name = (string)jToken["name"]; 
     Url = (string)jToken["url"]; 
     Target = (string)jToken["target"]; 
    } 

    public int Id { get; set; } 
    public string Name { get; set; } 
    public string Url { get; set; } 
    public string Target { get; set; } 
} 

然後聲明按鈕

LinkPickerModel linkPicker = new LinkPickerModel(imageItem.GetPropertyValue<string>("linkPicker")); 

然後,你可以簡單地訪問屬性是這樣的:

@linkPicker.Id @linkPicker.Name @linkPicker.Url @linkPicker.Target 
+0

非常感謝,但是你能解釋爲像是向一個虛擬人解釋嗎?我是MVC和Umbraco 7的新手。我在哪裏放置模型腳本?此外,當我聲明的按鈕 - 這在部分視圖右側?再次感謝您的幫助 – user3351677

+0

最簡單的方法是,但它在這樣的看法: @functions { } –

0

謝謝爲了您的全部幫助,彼得我最終把這段代碼放進去了。如果其他人有相同的問題,它可能會很有用:

string jsonStr = @imageItem.GetPropertyValue("linkPicker").ToString(); 
          var jsonObj = (JObject)Newtonsoft.Json.JsonConvert.DeserializeObject(jsonStr); 
           var link = Umbraco.TypedContent(Convert.ToInt16(@jsonObj["id"].ToString())); 
           <a href="@link.Url" style="color:#fff; font-weight:bold;">Click here to find out more</a 

>