2012-08-01 2 views
1

사용자 정의 도우미 클래스에서 컨트롤러 이름을 가져올 수 있어야합니다. 과 같이 "메뉴": "HelperController": 액션 컨트롤러를 호출MVC get helper class in controller

  1. 레이아웃보기 :

@Html.Action("Menu", "Helper")

  1. 이 전화

    나는 다음을 ActionResult 및 HTML 생성 :

    @model List<MvcMenuItem> 
    @{ 
    Layout = null; 
    } 
    @{   
    @Html.Menu(this.ViewContext).ClientId("navMain").AddRange(Model).Render() 
    } 
    
  2. 이것은 "public static class MvcMenuExtensions"을 호출하고 거기에 (내 Render() 방법) 나는 MvcMenuExtensions

I를 호출 내가 현재 해요 컨트롤러 이름, NOT 컨트롤러 이름을 얻을 수 있어야합니다 이 시도한 :.

string controller = this.ViewContext.RouteData.Values["controller"].ToString(); 

그러나 이것은이 "ActionResult는"어디서든 페이지에서 호출되고 있기 때문에 "Helper"컨트롤러가 아니라 내가에있어 현재의 컨트롤러 인 컨트롤러 결과 (이것은 레이아웃에의).

감사

+0

당신이 질문에이 아마 대답을 제공합니다 : http://stackoverflow.com/questions/4412310/how-to-get-current-controller-and-action-f rom-inside-child-action –

+0

당신이 해냈어!. 감사 – ShaneKm

답변