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 

>