2011-01-02 2 views
2

순수 호기심 때문에 현재 HttpRequest/Action으로 실행되는 동안 정적 컨텍스트에서 현재 컨트롤러에 액세스 할 수 있습니까?현재 컨트롤러에 정적으로 액세스 할 수 있습니까?

+0

질문에 used2could의 답변에 대한 의견을 요약하면 "호기심"이외의 컨텍스트가있는 것이 좋습니다. :) –

+0

@ Daniel - Understood :)하지만 그 링크를 따라 가면 정확한 컨텍스트입니다. 나는 얘기하고 있었다. 분명히 많은 컨트롤러가 어느 지점에서나 실행될 수 있기 때문에 이것이 가능하지 않다고 생각했지만, 나는 단지 물어볼 것이라고 생각했습니다. – TheCloudlessSky

답변

1

아니요. 여러 동시 요청에 대해 여러 컨트롤러가 특정 시점에 실행될 수 있기 때문에 정적 컨텍스트에서는 불가능합니다.

+0

나는 많은 것을 알았다. 나는 이것을 할 특별한 방법이 있는지 확실하지 않았다. 어쨌든, 나는 나의 디자인이 결함이 있다는 것을 깨닫고 그것을 다시 만들었다. 그래서 나는이 요구 사항을 필요로하지 않는다. 확인 감사합니다! – TheCloudlessSky

0

정적으로 수행하는 방법을 모르지만 일부 세션/인증 관리를 처리하는 동안이 작업을 수행 할 때 모든 컨트롤러가 System.Web.Mvc에서 상속되는 사용자 지정 BaseController 클래스를 상속받습니다. 컨트롤러 클래스. 기본 컨트롤러 클래스에서 OnActionExecuted 메서드를 재정의합니다.

public class BaseController : Controller 
{ 
    protected override void OnActionExecuted(ActionExecutedContext filterContext) 
    { 
     //Your logic here 

     base.OnActionExecuted(filterContext); 
    } 
} 


public class HomeController : BaseController 
{ 
    // 
    // GET: /Home/ 

    public ActionResult Index() 
    { 
     return View(); 
    } 


} 
+0

고마워요,하지만'ModelStateDictionary'에 대한 래퍼를 만들고 있어요. 그리고 컨트롤러의'ModelState' 속성이 서비스 내부에서 사용될 수 있도록 "현재 컨트롤러"를 삽입하려고합니다. 해야 할 것. – TheCloudlessSky

+0

참조 http://stackoverflow.com/questions/3873530/inject-asp-net-mvc-controller-property-into-service-layer-dependency 및 http://stackoverflow.com/questions/2077055/ioc-on- ivalidationdictionary-with-castle-windsor 자세한 내용은 – TheCloudlessSky

+0

아, 재미 있습니다. 행운을 빌어 요! – used2could

관련 문제