Подтвердить что ты не робот

Где можно разместить пользовательские классы в ASP.NET MVC?

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

Итак, где я могу поместить этот класс в структуру папок и как я могу получить доступ?

4b9b3361

Ответ 1

Вы можете создать новую папку под Helpers под корнем и физически сохранить свои классы. Я бы сохранил свои классы под другим пространством имен Helpers

namespace MyProject.Helpers
{
  public class CustomerHelper
  {
        //Do your class stuff here
  }
}

Чтобы активировать это в моих других классах (например: контроллеры), я могу либо использовать полное имя

var custHelper=new MyProject.Helpers.CustomerHelper(); 

ИЛИ

добавьте оператор Import вверху, чтобы я мог пропустить полное имя

//Other existing Import statements here
using MyProject.Helpers;
public class RackController : Controller
{
  public ActionResult Index()
  {
     var custHelper=new CustomerHelper(); 
     //do something with this  
     return View();    
  } 
}

Если вы считаете, что ваш метод Помощника может быть использован и в другом проекте, вы можете считать физически физическим в отдельном проекте (библиотеки классов типов). Чтобы использовать это в своем проекте, добавьте ссылку на этот проект и используйте его, как то, что мы сделали выше (используйте либо полное имя, либо используйте оператор импорта)

Ответ 2

Вы можете поместить свои вспомогательные классы в любом месте, где вы найдете логичный и удобный.

Лично я создаю папку Helpers из основной папки проекта.

Вы можете использовать их в любом месте, либо путем полного определения имени класса, либо с помощью инструкции using.

В режиме Razor вы должны использовать

@using MyProject.Helpers

В контроллере или модели вы должны использовать

using MyProject.Helpers;

Ответ 3

Вы можете создать новый проект, а затем поместить в проект общие классы. Если вы хотите использовать их, просто добавьте ссылку на проект.

Ответ 4

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

public class MyBaseController:Controller
{
   public void CommonFunction()
    {
    }
}

Использовать как...

public HomeController:MyBaseController
{
}

Ответ 5

Кроме того, обязательно установите для параметра "Действие сборки" своего класса значение "Скомпилировать". В Visual Studio 2015 по умолчанию каждый класс, созданный в App_Code (щелчком правой кнопки мыши → Добавить → класс), получил "Контент" в качестве действия сборки.