MVC에 대한 제 이해가 치명적인 결함이라고 생각합니다. 나는 항상 컨트롤러의 액션 메소드가 무 상태이고 컨트롤러 자체가 무 상태라고 가정했다.작업은 상태 비 저장이지만 컨트롤러는 상태 비 저장 중입니까?
그래서 작업이 호출 될 때마다 컨트롤러의 새 인스턴스가 생성됩니까?
MVC에 대한 제 이해가 치명적인 결함이라고 생각합니다. 나는 항상 컨트롤러의 액션 메소드가 무 상태이고 컨트롤러 자체가 무 상태라고 가정했다.작업은 상태 비 저장이지만 컨트롤러는 상태 비 저장 중입니까?
그래서 작업이 호출 될 때마다 컨트롤러의 새 인스턴스가 생성됩니까?
컨트롤러의 새로운 인스턴스로 들어오는 모든 요청 만들어집니다이 고려하십시오.
이public class HomeController : Controller
{
public ActionResult Index()
{
return MoreIndex();
}
public ActionResult MoreIndex()
{
return View();
}
}
/Home/Index
에 대한 들어오는 요청이 두 가지 작업을 입력하지만, 단 하나의 컨트롤러가 생성됩니다. /Home/MoreIndex
에 대한 요청은 하나의 작업으로 들어가고 하나의 컨트롤러가 생성됩니다. 이제는 컨트롤러를 수동으로 생성하여 유지하고 재사용 할 수 없습니다. 그러나 HTTP에서 오는 실제 요청과 관련해서는 결코 존재하지 않습니다.
이 페이지는 유용한 정보를 제공합니다 : http://blog.christopheargento.net/2012/06/11/detailed-life-cycle-of-an-asp-net-mvc-request/ –
컨트롤러에 상태가있는 것이 합리적입니다. 나는 보통 데이터베이스 연결을 공통 컨트롤러 기본 클래스에서 참조한다. 이러한 이유 때문에 MVC는 각 요청에 대해 새로운 컨트롤러를 생성하고 적절하게 처리합니다.
예, 컨트롤러는 개체입니다 ... IIS는 주문형 서버입니다. 작업 실행 컨트롤러 객체가 삭제 된 후. – YD1m