Program Club

ASP.NET MVC에서 사용자 지정 클래스를 어디에 넣을 수 있습니까?

proclub 2020. 12. 4. 21:07
반응형

ASP.NET MVC에서 사용자 지정 클래스를 어디에 넣을 수 있습니까?


몇 가지 유틸리티 기능과 페이지 매김 기능이 있습니다. 두 개 이상의 컨트롤러에서 이러한 클래스 함수를 사용할 수 있도록 이러한 함수에 대해 각각 Utility 및 Pagination이라는 클래스를 만들고 싶습니다.

그렇다면이 클래스를 폴더 구조에 어디에 넣을 수 있으며 어떻게 액세스 할 수 있습니까?


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();    
  } 
}

Helper 메서드를 다른 프로젝트에서도 사용할 수 있다고 생각되면 물리적으로 별도의 프로젝트 (클래스 라이브러리 형식) 에 유지하는 것을 고려할 수 있습니다 . 프로젝트에서 이것을 사용하려면이 프로젝트에 대한 참조를 추가하고 위에서 한 것처럼 사용하십시오 (정규화 된 이름 사용 또는 import 문 사용).


논리적이고 편리한 곳에 헬퍼 클래스를 배치 할 수 있습니다.

개인적으로 Helpers메인 프로젝트 폴더에서 폴더를 만듭니다.

클래스 이름을 완전히 규정하거나 using명령문을 사용하여 어디서나 사용할 수 있습니다 .

Razor보기에서는 다음을 사용합니다.

@using MyProject.Helpers

컨트롤러 또는 모델에서

using MyProject.Helpers;

또 다른 접근 방식은 기본 컨트롤러 클래스를 만들고 여기에 공통 로직을 추가하고 기본 컨트롤러에서 컨트롤러를 파생시키는 것입니다.

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

다음과 같이 사용 ...

public HomeController:MyBaseController
{
}

새 프로젝트를 만든 다음 공통 클래스를 프로젝트에 넣을 수 있습니다. 그것들을 사용하려면 프로젝트 참조를 추가하십시오.


또한 클래스의 "Build Action"을 "Compile"로 설정해야합니다. Visual Studio 2015에서 기본적으로 App_Code 내에서 생성 된 모든 클래스 (오른쪽 클릭-> 추가-> 클래스)는 빌드 작업으로 "콘텐츠"를 얻습니다.

참고 URL : https://stackoverflow.com/questions/11515973/where-can-i-put-custom-classes-in-asp-net-mvc

반응형