Можем ли мы использовать синтаксис Razor в веб-формах ASP.NET (страницы * .aspx)? - PullRequest
39 голосов
/ 10 марта 2011

Мне нравится синтаксис Razor, разработанный Microsoft для встроенного кодирования в их продукте WebMatrix (http://en.wikipedia.org/wiki/Microsoft_WebMatrix).

Теперь, когда Visual Studio SP1 имеет RTM, возможно (и / или планируется) включить использование синтаксиса Razor в ASP.NET Webforms?

Ответы [ 5 ]

46 голосов
/ 11 марта 2011

Мы (команда ASP.NET) в настоящее время не планируем поддерживать модель страниц WebForms с использованием синтаксиса Razor. Более того, маловероятно, что мы когда-либо серьезно подумаем об этом, поскольку модели слишком разные, чтобы заставить их работать вместе.

29 голосов
/ 10 марта 2011

Вы можете использовать страницы Razor без MVC;это называется ASP.Net WebPages.

Просто добавьте файлы .CSHTML в обычный проект ASP.Net 4.0.

Я объяснил, как это работает в моем блоге.

5 голосов
/ 10 марта 2011

Вы можете интегрировать его, используя RazorEngine, доступный от Codeplex .Это позволяет обрабатывать бритву вне MVC.Хотя вы не получаете все функции, которые вы получаете от версии Razor для MVC, такие как @Html и @Url и другие.

0 голосов
/ 24 сентября 2013

Это действительно не так сложно сделать.Работаю над этим прямо сейчас.Возьмите RazorEngine от CodePlex.Он позволяет вам скомпилировать файлы Razor cshtml / vbhtml в класс во время выполнения.

Затем вы можете взять этот класс и использовать его из серверного серверного элемента управления ASP.Net внутри его метода Render.Это отличный способ вывести HTML из тела элемента управления сервера.Многое, намного чище.

Теперь вы также можете добавить некоторые методы, которые вы можете вызывать из Razor.Например, добавьте что-то вроде RenderChild.Кроме того, вы можете установить сам серверный элемент управления в качестве модели, доступной для Razor.Затем вы можете вызвать в серверный элемент управления.Включая выполнение чего-то вроде захвата одного из дочерних элементов управления и вызова Render.

0 голосов
/ 11 марта 2011

Смею сказать, что Microsoft рассмотрела это, но нет официального слова по этому вопросу.Поскольку у вас не должно быть кода C # или VB в файле ASPX, вам нужно задуматься о том, как добавить поддержку Razor в веб-формы.Код позади все еще будет (частичным) файлом класса.Вы бы не поместили Razor туда больше, чем поместили бы его в файл класса в Web Pages или MVC.А замена серверных элементов управления и все эти хорошие декларативные вещи для Html Helpers устраняет одну из ключевых причин перехода по маршруту Web Forms, IMO.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...