110 likes | 302 Views
XsltView для MVC. Реализуем XsltView для MVC при помощи ObjectXPathNavigator. View в MVC. Стандартный View – ASP.NET Web Forms Легко можно подключить другой MvcContrib : Brail NDjango NHaml NVelocity SharpTiles Spark StringTemplate XSLT. Чем плох MvcContrib.XsltViewEngine ?.
E N D
XsltViewдля MVC Реализуем XsltViewдля MVC при помощи ObjectXPathNavigator Андрей Майоров (xor@byte-force.com). BYTE-force
View в MVC • Стандартный View – ASP.NET Web Forms • Легко можно подключить другой • MvcContrib: • Brail • NDjango • NHaml • NVelocity • SharpTiles • Spark • StringTemplate • XSLT
Чем плох MvcContrib.XsltViewEngine? • Использованием специального объекта XsltViewData: • Нельзя сменить view, не меняя контроллер. • Ручное преобразование данных в XML. • Всякая мелочь: • Не работает <xsl:import> • Явно лишние классы
ObjectXPathNavigatorв помощь • Используем во view любой объект. Без модификации. • Убирается множество вспомогательных объектов.
Подключение движка Global.asax.cs Еще создаем шаблон index2.xslt
Можно работать • Запрошен view «index2» • Система находит его по имени – «index2.xslt» • По расширению выбирается движок • XsltViewFactory.FindView() • XsltView.Render()
Замечания • Нужна специальнаяNodePolicyдля более удобной работы с данными • HtmlHelperиспользовать не получится. • Часть его методов можно вызывать через extension object. • Часть реализовать в XSLT. • Часть вовсе не нужна?
Баг в MVC • WebFormView.Render( context, writer ) игнорирует переданный writer.
Код выложим, когда/если будет понятна его ценность. Вопросы есть?