Как повторно использовать одни и те же функции в разных файлах .aspx или создать библиотеку функций?

#c# #asp.net

#c# #asp.net

Вопрос:

На данный момент мой веб-проект в asp.NET состоит из 5 файлов .aspx. Я определил одни и те же функции в каждом файле .aspx. Чего я хочу, так это способа создать свою собственную библиотеку / файл функций, которые я мог бы включать в свои скрипты .aspx.

При поиске решения я нашел только это, динамически включающее файлы в ASP.NET Который используется для динамического включения HTML и клиентских скриптов в .aspx. Так что это не то, что мне нужно.

Комментарии:

1. .asp — это «классический ASP», .aspx — это ASP.NET на какую из этих двух вы ссылаетесь?

Ответ №1:

Вы можете очень легко создать библиотеку в ASP.NET.

Определите пространство имен и создайте новые классы в этом пространстве имен (обычно каждый класс в отдельном файле, но это не принудительно)

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

Синтаксис для включения пространства имен в ASPX-файл таков:

 <%@ Import Namespace="mylibrarynamespace" %>
  

В коде, лежащем в основе:

 using mylibrarynamespace;
  

Надеюсь, это поможет.

Ответ №2:

Как насчет создания базового класса, из которого происходят все ваши классы page? Это кажется самым простым способом.

Ответ №3:

Существует множество подходов, которые вы можете использовать для совместного использования кода между страницами. Это действительно зависит от того, какого типа функциональности вы пытаетесь достичь.

Вот некоторые из них, с которыми я сталкивался в прошлом:

  1. Используя базовую страницу — вы можете сделать свои aspx-страницы производными от пользовательского класса, который запускается из Page. Таким образом, вы можете вызвать base.methodName(). Это особенно полезно, если вам нужен доступ к частным / защищенным участникам / событиям.
  2. Поместите методы в класс — вы можете создать пользовательский класс, в котором хранятся ваши методы. Я предлагаю сделать это, если все методы связаны, и имеет смысл объединить их в одном классе. Ваши требования также будут определять, должен ли класс быть статическим / создаваемым экземпляром (для меня это больше похоже на выбор между System.IO.File и System.IO.FileInfo). Недостатком этого является то, что вы не можете получить доступ к каким-либо закрытым элементам страницы или запустить какое-либо из ее событий.
  3. Методы расширения — это что-то вроде # 2, за исключением его статичности и тесной привязки к типу страницы. Синтаксис делает его более читаемым (на мой взгляд). Однако существуют определенные рекомендации по проектированию, которые вам следует учитывать.

Ответ №4:

Просто создайте файл .cs и поместите его в свой каталог App_Code. Сделайте свой класс и соответствующие функции общедоступными, и все готово.

Ответ №5:

выполните эти 5 простых шагов! чтобы сэкономить тонны повторных записей функций между asp.net веб-формы!

1) Создайте класс внутри вашей папки App_Data: (щелкните правой кнопкой мыши приложение> Добавить > Добавить ASP.Net папка) (Добавить > Новый элемент > Класс)

важно! когда вы добавляете эти классы, вы должны переключить действие сборки на «compile» вместо «content» в свойствах файла, иначе ваш codebehind не распознает импортированные пространства имен.

2) Внутри класса создайте методы:

 namespace applicationName.App_Code
   {
       public class ClassName
           {
               public string classMethod()
                  {
                    return "hello";
                  }
           }
   }
  

3) В коде любой формы включите этот заголовок класса:

 using applicationName.App_Code; //add this
  

4) В коде этой формы создайте экземпляр класса:

 ClassName classInstanceName = new ClassName(); //add this
  

5) Вызовите метод в вашей форме codebehind

 classInstanceName.classMethod()