Продолжим изучение возможностей работы с Razor в версии 4.0 Composite C1 CMS.
По умолчанию, все Razor-функции возвращают значение типа XhtmlDocument. Это логично и понятно.
Напомню, что в этой версии вы можете создавать C1-функции, используя синтаксис Razor. В предыдущих сообщениях, мы уже разобрались, как можно создавать такие функции в этой системе, и как работать с входными параметрами.
Теперь коснемся немного темы типа возвращаемого результата такой функции.
Изменение типа возвращаемого значения в Razor-функции
По умолчанию, все Razor-функции возвращают значение типа XhtmlDocument. Это логично и понятно.
Если же вам необходимо вернуть значение другого типа, вы тоже можете это сделать.
Для этого вам нужно воспользоваться публичным переопределяемым свойством FunctionReturnType.
Понятно, что указываемый вами тип должен иметь смысл в контексте содержимого результата Razor-функции.
Вот как изменить тип возвращаемого значения на строку (string):
@inherits RazorFunction
@functions
{
public override string FunctionDescription
{
get { return "Демо-функция, возвращающее значение типа строка."; }
}
public override Type FunctionReturnType
{
get { return typeof(string); }
}
}
Сейчас: @DateTime.Now
@functions
{
public override string FunctionDescription
{
get { return "Демо-функция, возвращающее значение типа строка."; }
}
public override Type FunctionReturnType
{
get { return typeof(string); }
}
}
Сейчас: @DateTime.Now
А вот как изменить его на XElement:
@inherits RazorFunction
@functions
{
public override string FunctionDescription
{
get { return "Демо-функция, возвращающее значение типа XElement."; }
}
public override Type FunctionReturnType
{
get { return typeof(XElement); }
}
}
<element example="true" datetime="@DateTime.Now" />
@functions
{
public override string FunctionDescription
{
get { return "Демо-функция, возвращающее значение типа XElement."; }
}
public override Type FunctionReturnType
{
get { return typeof(XElement); }
}
}
<element example="true" datetime="@DateTime.Now" />
Комментариев нет:
Отправить комментарий