четверг, 8 августа 2013 г.

Razor в Composite C1 CMS 4.0 (8): Обработка URLов

Если вы хотите использовать ссылку на страницу сайта или медиа-файла (изображения) из медиа-архива в Razor-функциях, вы можете использовать известный уже вам способ - с использованием GUID'а страницы или медиа-файла:

~/page(1544e0b9-48fa-46d9-a368-3513e02a9feb)
~/media(1544e0b9-48fa-46d9-a368-3513e02a9feb)

И вместо жестко заданного GUID'а может быть переменная / входной параметр.

В следующем примере, в Razor-функции есть два входных параметр PageUrl и ImageSource, которые дает возможность пользователю указывать страницу на сайте и изображение из медиа-архива для функции.

@inherits RazorFunction

@functions {
    public DataReference<IPage> PageUrl { get; set; }
    public DataReference<IMediaFile> ImageSource { get; set; }    
}

<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <title></title>
  </head>
  <body>
    <a href="~/page(@PageUrl.Data.Id)">@PageUrl.Data.Title</a><br/>
    <img src="~/media({@ImageSource.Data.Id})"  alt="..."/>
  </body>
</html>

Кроме указанного выше способа, вы также можете использовать вспомогательные методы PageUrl и MediaUrl:

@inherits RazorFunction

@functions {
    public DataReference<IPage> PageUrl { get; set; }
    public DataReference<IMediaFile> ImageSource { get; set; }    
}

<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <title></title>
  </head>
  <body>
    <a href="@Html.C1().PageUrl(@PageUrl.Data)">@PageUrl.Data.Title</a><br/>
    <img src="@Html.C1().MediaUrl(@ImageSource.Data)"  alt="..."/>
  </body>
</html>

Комментариев нет:

Отправить комментарий