Как получить ссылку из архетипа с одним URL-адресом в Umbraco? - PullRequest
0 голосов
/ 12 января 2019

Я создаю поле архетипа с несколькими данными, такими как ссылка на изображение заголовка. Я могу получить значение для значения содержимого заголовка, но ссылка показывает вывод.

[{"name": "Просмотр веб-сайта", "url": "www.google.com", "target": "_blank", "icon": "icon-link"}]

Как получить URL по ссылке

@ {

var property = Model.Content.GetPropertyValue<ArchetypeModel>("exhibitorLogos");

}

@ if (property! = Null && property.Any ()) {

foreach (var item in property)
{


    var imageId = item.GetValue<int>("image");
    var imgurlbannerLogoUrl = Umbraco.Media(imageId.ToString()).Url;
    var text = item.GetValue<string>("name");
    var content = item.GetValue<string>("content");
    var link = item.GetValue<string>("link");


    <h1>@text</h1>
    <img src="@imgurlbannerLogoUrl"/>
    <p>@content</p>
    <a href="@link">ReadMore</a>

}

}

1 Ответ

0 голосов
/ 13 января 2019

Это немного зависит от вашей версии Umbraco и используемой вами версии средства выбора URL, попробуйте следующее.

Добавить оператор использования:

@using RJP.MultiUrlPicker.Models

Затем выполните одно из следующих действий.

Либо это:

foreach (var item in property)
{


    var imageId = item.GetValue<int>("image");
    var imgurlbannerLogoUrl = Umbraco.Media(imageId.ToString()).Url;
    var text = item.GetValue<string>("name");
    var content = item.GetValue<string>("content");
    var link = item.GetValue<Link>("link");


    <h1>@text</h1>
    <img src="@imgurlbannerLogoUrl"/>
    <p>@content</p>
    <a href="@link">ReadMore</a>

}

Или это:

foreach (var item in property)
{
    var imageId = item.GetValue<int>("image");
    var imgurlbannerLogoUrl = Umbraco.Media(imageId.ToString()).Url;
    var text = item.GetValue<string>("name");
    var content = item.GetValue<string>("content");
    var link = item.GetValue<IEnumerable<Link>>("link").FirstOrDefault();


    <h1>@text</h1>
    <img src="@imgurlbannerLogoUrl"/>
    <p>@content</p>
    <a href="@link">ReadMore</a>

}

Тогда вы можете просто сделать что-то вроде следующего:

<a href="@link.Url" target="@link.Target">@link.Name</a>
...