내 모든 페이지에서 사용할 저장소가 있습니다.C# MVC 5 상속 할 사용자 지정 컨트롤러 클래스
기본적으로 모든 MVC 컨트롤러는 Controller
클래스에서 상속받습니다. 내 Repository
필드를 정의한 CustomBaseController
클래스를 만들고 CustomBaseController
생성자에서 컨텍스트를 사용하여 repo를 인스턴스화했습니다.
예를 들어 새로운 컨트롤러를 만들고 싶을 때. HomeController
은 CustomBaseController
에서 상속되며 내 저장소 필드 (db)는 표시되지 않습니다. 여기
나의 새로운 CustomBaseController
에서 예입니다 : 내 HomeController
에서도
public class CustomBaseController : Controller {
private IRepository db; // <-- defined
public CustomController() {
// here it is initialized
db = new DbRepository(new ApplicationDBContext());
}
}
그리고 :
public class ProgramController : CustomBaseController
{
// GET: Program
public ActionResult Index()
{
// db is not accessible here for some reason,
// like it wasn't inherited from CustomBaseController
var user = db.getUserByID(1);
return List(user);
}
...
그래서 보호 해주세요. –