Рекомендации по именам классов с частичной страницей в ASP.NET - PullRequest
1 голос
/ 30 марта 2009

Когда вы создаете новую страницу asp.net в VS 2008 и выбираете код позади, она также создает типичный файл aspx.vb или aspx.cs, чтобы идти вместе с ним.

В верхней части этих файлов VS называет 'Partial Class', имя файловой структуры и / или имя файла aspx.

Вопрос: есть ли лучшая практика для этого? Могу ли я просто использовать одно имя класса для всех страниц моего приложения или, возможно, один каталог вместо того, чтобы давать каждому уникальное имя?

Chris

Ответы [ 5 ]

3 голосов
/ 30 марта 2009

Я думаю, что причина "частичного класса" состоит в том, чтобы позволить Visual Studio поместить все объявления в отдельный файл, чтобы они не загромождали код позади. В дополнение к файлу aspx.vb / cs есть также файл designer.vb / cs, который содержит все объявления элементов управления.

Взгляните на asp.net: частичные классы и наследование для получения дополнительной информации.

1 голос
/ 30 марта 2009

В нашем проекте, поскольку большая часть фактической работы выполняется серверными элементами управления, вставляемыми на страницу с помощью тегов на стороне сервера, нам на самом деле не требуется задний код на большинстве страниц. Следовательно, около 18 из наших 22 страниц aspx даже не имеют директивы <% Page%>. Базовый класс страницы по умолчанию устанавливается из файла web.config:

    <pages masterPageFile="~/MasterPage.master" pageBaseType="OurProject.OurBasePageClass">
    </pages>
1 голос
/ 30 марта 2009

Код-код специфичен для отдельной страницы. Если вы возьметесь за него, то сломаете модель aspx (см. «Наследует» или аналогичную в верхней части страницы aspx).

Каждая страница aspx (в обычном ASP.NET) должна иметь отдельный класс.

В ASP.NET MVC обратите внимание, что один класс контроллера обычно ассоциируется с несколькими связанными представлениями (и что aspx / ascx не имеют склонности к выделению кода в MVC).

0 голосов
/ 30 марта 2009

На самом деле для многих страниц ASPX довольно часто используется один и тот же класс, что и для кода. Если вы обнаружите, что между классами базовой страницы и связанными с ними ASPX-файлами выполняется много один к одному, имеет смысл придерживаться модели по умолчанию. Но если это не имеет смысла для вашего приложения, ничто не мешает вам указывать все ваши свойства ASPX Inherits на один и тот же класс.

Конечно, как и во всем, всегда лучше выучить правила, прежде чем их нарушать. Обычная модель WebForms подходит для большинства случаев использования, особенно для разработчиков, которые начинают или переходят на платформу ASP.NET WebForms. Поэтому убедитесь, что вы знаете достаточно, чтобы знать, чем вы занимаетесь, прежде чем начать что-то менять :)

0 голосов
/ 30 марта 2009

Нет, каждая страница должна быть другого класса (при условии, что они на самом деле делают разные вещи). Это потому, что вы действительно создаете подкласс Page для каждой из своих страниц, а затем переопределяете логику по умолчанию с вашим конкретным поведением. Таким образом, каждый набор поведений (каждый «Тип страницы») - это отдельный класс.

...