Где я могу поместить пользовательские классы ASP.NET MVC?
У меня есть некоторые служебные функции и функция разбиения на страницы. Я хочу создать классы с именем Utility и Pagination для этих функций соответственно, чтобы я мог использовать эти функции класса в нескольких контроллерах.
Итак, где я могу поместить этот класс в мою структуру папок, и как я могу получить доступ тогда?
5 ответов:
вы можете либо создать новую папку под названием
Helpersпод корень и держать ваши классы физически там. Я бы сохранил свои классы в другом пространстве имен под названиемHelpersnamespace 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(); } }если вы думаете, что ваш вспомогательный метод может быть использован в другом проекте также, вы можете рассмотреть, чтобы сохранить их физически в отдельном проекте(типа библиотеки классов). Чтобы использовать это в своем проекте, добавьте ссылку на этот проект и используйте его, как мы делали выше (используйте либо полное имя, либо используйте оператор импорта)
вы можете разместить свои вспомогательные классы в любом месте, которое вы найдете логичным и удобным.
лично я создаю папку
Helpersиз главной папки проекта.вы можете использовать их в любом месте, либо полностью квалифицируя имя класса, либо с
usingзаявление.в представлении Razor, вы должны использовать
@using MyProject.Helpersв контроллере или модели, вы должны использовать
using MyProject.Helpers;
другой подход может заключаться в создании базового класса контроллера и добавлении туда вашей общей логики и получении вашего контроллера из вашего базового контроллера.
public class MyBaseController:Controller { public void CommonFunction() { } }использовать как...
public HomeController:MyBaseController { }
вы можете создать новый проект,а затем положить общие классы в проект . Если вы хотите их использовать, просто добавьте ссылку на проект.
кроме того, не забудьте установить "действие сборки" вашего класса для "компиляции". В Visual Studio 2015 по умолчанию каждый класс, созданный в App_Code (щелчком правой кнопки мыши -> добавить - > класс), получил "содержимое" в качестве действия сборки.
Comments