На самом деле это не совсем так. В C1 есть эталонные страницы - благодаря проекту сообщества под названием Composite C1 Contrib.
Итак, если вы большой фанат эталонных страниц, вы можете добавить их поддержку в свой C1.
Для начала вам нужно:
- Установить последнюю версию C1 (на данный момент это 2.1.4087.22991).
- Загрузить проект Composite C1 Contrib, распаковать его и собрать его в Visual Studio.
В результате вы получите CompositeC1Contrib.dll.
Теперь собственно добавляем поддержку эталонных страниц:
- Копируем CompositeC1Contrib.dll в папку /bin вашего сайта.
- Открываем web.config сайта и добавляем следующую конфигурацию:
- в зависимости от версии IIS либо в <system.web/httpHandlers>:
<httpHandlers>
<add verb="*" path="/Renderers/Page.aspx" type="CompositeC1Contrib.Web.UI.CompositeC1Page, CompositeC1Contrib" /> </httpHandlers>
- либо в <system.webServer/handlers>:
<handlers>
<add name="CompositePage" verb="*" path="/Renderers/Page.aspx" type="CompositeC1Contrib.Web.UI.CompositeC1Page, CompositeC1Contrib" />
</handlers>
- В том же web.config регистрируем префикс rendering для нужных нам элементов управления - в <system.web/pages/controls>:
<controls>
<add tagPrefix="rendering" namespace="CompositeC1Contrib.Web.UI.Rendering" assembly="CompositeC1Contrib" />
</controls>
Здесь есть свои особенности, которые вам нужно обязательно учесть.
(а) При наличии, эталонные страницы используются вместо существующих XSLT шаблонов. Поэтому:
- Все эталонные страницы для C1 нужно создавать в папке, где расположены XSLT шаблоны, т.е. в /App_Data/PageTemplates/.
- Название эталонной страницы должно совпадать с названием XSLT шаблона. То есть, если у вас есть шаблон /App_Data/PageTemplates/FrontPage.xml, то нужно создать эталонную страницу /App_Data/PageTemplates/FrontPage.master. В результате, эталонная страница будет использоваться вместо соответствующего XSLT шаблона. (А при отсутствии эталонной страницы будет использоваться XSLT шаблон.)
<rendering:placeholder id="contentplaceholder" title="Content" default="true" runat="server" />.
Вызов C1 функций в эталонных страницах
В последней версии проекта, его автор burningice добавил также поддержку вызовов С1 функций прямо в эталонных страницах. Все, что вам нужно сделать, так это заключить код разметки функции (<f:function />) в элемент <rendering:function runat="server" />.
<rendering:function runat="server">
<f:function name="Composite.Navigation.Path" xmlns:f="http://www.composite.net/ns/function/1.0">
<f:param name="Level" value="0" />
</f:function>
</rendering>
<f:function name="Composite.Navigation.Path" xmlns:f="http://www.composite.net/ns/function/1.0">
<f:param name="Level" value="0" />
</f:function>
</rendering>
Написано по мотивам:
- Web Form Master Pages (англ.)
- Composite C1 Contrib project's documentation (англ.)
Комментариев нет:
Отправить комментарий