2012-03-14 5 views
16

Недавно я попадал в MVC3 и Razor и читал несколько статей об этих темах, чтобы лучше понять концепцию.Сравнение синтаксиса Razor vs ASPX

Я читал Scott Guthrie's Blog Post, в котором он предлагает следующие 2 примера. Первый будучи ASPX синтаксис, второй синтаксис существо Razor:

enter image description here

enter image description here

Это замечательно, но как справедливое сравнение ASPX и Razor я немного запутался.

Я никогда не видел ни одного рабочего примера синтаксиса ASPX. Разумеется, разработчики использовали элементы управления Repeater и т. Д., Так как был выпущен ASP.NET? Я не видел такого синтаксиса, как Classic ASP.

Я всегда думал, что это была плохая практика, чтобы поставить программный код в строку с файлом разметки, а не код за файлом.

Должен ли любой ASP.NET-разработчик ASP.NET выглядеть так?

ответ

11

Я думаю, что вы определенно путаетесь. Ваш первый пример не является традиционным asp.net. Это то, что использовал движок рендеринга MVC для использования предварительного бритвы (MVC 1 & MVC 2 - который, я считаю, называется механизмом просмотра WebForms).

Я уверен, что вы не можете использовать foreach на традиционных страницах ASP.Net. (комментарий Veli исправил меня на этом)

С MVC 3 вы можете использовать механизм просмотра Razor, который, как вы можете видеть в примере, гораздо читабельнее. Конечно, с MVC 3 вы все равно можете сделать это по-другому, это вариант, который вы выбираете при создании начального проекта.

You can read more about the differences here

+0

Привет, я не думал, что это просто сравнение MVC. Я предполагал, что это показывает разницу между веб-формами aspx и бритвой mvc! – Curt

+5

Yup, хотя вы _can_ используете foreach, а выше будет отлично отображаться на «традиционной» странице asp.net, это не очень хорошая практика. –

6

ли какие-либо ASP.NET ASPX разработчиков кода, как это?

Я сомневаюсь. Разработчики Classic WebForms используют серверные элементы управления, такие как ретрансляторы.

ASP.NET MVC-разработчики, с другой стороны, очень сильно используют этот синтаксис. Ну, на самом деле вы можете использовать Display Templates в ASP.NET MVC, который позволяет вам писать уродливые петли foreach.

+1

Привет, я начинал думать о встроенном синтаксисе, как это было распространено для веб-форм. Я не принимал во внимание MVC1/MVC2 – Curt

0

Я всегда думал, что это была плохая практика, чтобы поставить программный код в строку с файлом разметки, а не код за файлом.

Это верно для разработчиков C# WinForm/WPF, которые используют архитектуру MVVM. Но, по-моему, по-прежнему хорошей практикой является включение встроенного программного кода в ASP.NET MVC.

-1

Не путайте программный код и код, чтобы отобразить свойство. Плохая практика - поставить программный код в файл разметки. Однако код, который вы показываете, является кодом, используемым для создания разметки.

MVC следует рассматривать как нормальную структуру MVC, и весь логический код должен находиться в контроллере.

Смежные вопросы