Где я могу поместить пользовательские классы ASP.NET MVC?



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



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

465   5  

5 ответов:

вы можете либо создать новую папку под названием 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();    
  } 
}

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

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

лично я создаю папку 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

    Ничего не найдено.