среда, 12 июня 2013 г.

Razor в Composite C1 CMS 4.0 (2): Создание Razor-функций в админке

Так как поддержка Razor теперь встроена в ядро системы, вы можете создавать Razor-функции не прибегая к помощи сторонних пакетов расширения.

Кроме того, создание Razor-функций теперь упрощено до безобразия.  И вы можете создать Razor-функцию как в админке в разделе "Функции", так и в Visual Studio.

Причем во втором случае для удобства создания Razor-функций вы можете установить расширение для Студии, которое добавит нужные шаблоны.

Но давайте по порядку.


Создание Razor-функций в админке Composite C1

  1. В разделе "Функции" выберите Razor Functions
  2. ...и нажмите кнопку Add Razor Function на панели.

  3. В появившемся окне, заполните поля:
    1. Name: Название функции
    2. Namespace: Пространство имен, которому функция будет принадлежать.
  4. Оставьте пункт (New Razor function) в списке Copy from, если вам нужна новая функция, или выберите код какой существующей Razor-функции копировать при создании.
  5. Нажмите OK.

В правой панели в редакторе кода откроется только что созданный .cshtml-файл, который по сути и является этой Razor-функцией.



Шаблонный код Razor-функции


Только что созданная функция уже будет иметь шаблонный код.

@inherits RazorFunction

@functions {
    public override string FunctionDescription
    {
        get  { return "A demo function that outputs a hello message."; }
    }

    [FunctionParameter(DefaultValue = "World")]
    public string Name { get; set; }
}

<html xmlns="http://www.w3.org/1999/xhtml" xmlns:f="http://www.composite.net/ns/function/1.0">
    <head>
    </head>
    <body>
        <div>
            Hello @Name!
        </div>
    </body>
</html>


.cshtml-файл как Razor-функция


А вообще, чтобы .cshtml-файл стал Razor-функцией в Composite C1, должны быть соблюдены следующие требования:
  • Файл должен быть помещен в 1+ подпапку в ~/App_Data/Razor. Если вам нужна функция Demo.Razor.CoolFunction, файл должен быть создан как ~/App_Data/Razor/Demo/Razor/CoolFunction.cshtml. Если вы создаете функцию в админке, система сама позаботится о правильном размещении и наименовании папок и файла.
  • Наследование в файле должно быть от RazorFunction: @inherits RazorFunction
И еще, это не обязательно, но является хорошим тоном - в свойстве FunctionDescription можно вернуть строку описание функции.

А о добавлении параметров и редактировании Razor-функций мы поговорим в одних из следующих сообщений.

А в следующем сообщении мы рассмотрим как создавать Razor-функцию в Visual Studio.

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

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