Где можно разместить пользовательские классы в ASP.NET MVC?
У меня есть некоторые функции полезности и функция разбиения на страницы. Я хочу создать классы с именем Utility и Pagination для этих функций соответственно, чтобы я мог использовать эту функцию класса в нескольких контроллерах.
Итак, где я могу поместить этот класс в структуру папок и как я могу получить доступ?
Ответы
Ответ 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 (щелчком правой кнопки мыши → Добавить → класс), получил "Контент" в качестве действия сборки.