Сравнение синтаксиса Razor vs ASPX
Недавно я попадал в MVC3 и Razor и читал несколько статей об этих темах, чтобы лучше понять концепцию.
Я читал пост в блоге Скотта Гатри, в котором он приводит следующие 2 примера. Первый - синтаксис ASPX, второй - синтаксис Razor:
![enter image description here]()
![enter image description here]()
Это здорово, но, как справедливое сравнение ASPX и Razor, я немного смущен.
Я никогда не видел ни одного рабочего примера синтаксиса ASPX. Разумеется, разработчики использовали элементы управления Repeater
и т.д., Так как был выпущен ASP.NET? Я не видел такого синтаксиса, как классический ASP.
Я всегда считал, что неправильная практика заключается в том, чтобы ввести программный код в строку с файлом разметки вместо кода, лежащего за файлом.
Создаются ли какие-нибудь ASP.NET-разработчики ASP.NET?
Ответы
Ответ 1
Я думаю, что вы определенно путаетесь. Ваш первый пример не является традиционным asp.net. Это то, что использовал механизм рендеринга MVC для использования предварительного бритвы (MVC 1 и MVC 2, который, как я считаю, называется механизмом просмотра WebForms).
Я очень уверен, что вы не можете использовать foreach на традиционных страницах ASP.Net. (комментарий Veli исправил меня на этом)
С MVC 3 вы можете использовать механизм просмотра Razor, который, как вы можете видеть в этом примере, гораздо читабельнее. Конечно, с MVC 3 вы все равно можете сделать это по-другому, это вариант, который вы выбираете при создании начального проекта.
Подробнее о различиях читайте здесь
Ответ 2
Создаются ли какие-нибудь ASP.NET-разработчики ASP.NET?
Я сомневаюсь. Разработчики Classic WebForms используют серверные элементы управления, такие как ретрансляторы.
Разработчики ASP.NET MVC, с другой стороны, очень сильно используют этот синтаксис. Ну, на самом деле вы можете использовать Display Templates в ASP.NET MVC, который позволяет вам писать уродливые петли foreach.
Ответ 3
Я всегда считал, что неправильная практика заключается в том, чтобы ввести программный код в строку с файлом разметки вместо кода, лежащего за файлом.
Это верно для разработчика С# WinForm/WPF, использующего архитектуру MVVM. Но, по-моему, по-прежнему хорошей практикой является внедрение встроенного программного кода в ASP.NET MVC.
Ответ 4
Не путайте код программирования и код, чтобы отобразить свойство. Плохая практика - поставить программный код в файл разметки. Однако код, который вы показываете, является кодом, используемым для создания разметки.
MVC следует рассматривать как обычную среду MVC, и весь логический код должен находиться в контроллере.