사용자 정의 도우미 클래스에서 컨트롤러 이름을 가져올 수 있어야합니다. 과 같이 "메뉴": "HelperController": 액션 컨트롤러를 호출MVC get helper class in controller
- 레이아웃보기 :
@Html.Action("Menu", "Helper")
이 전화
나는 다음을 ActionResult 및 HTML 생성 :
@model List<MvcMenuItem> @{ Layout = null; } @{ @Html.Menu(this.ViewContext).ClientId("navMain").AddRange(Model).Render() }
이것은 "
public static class MvcMenuExtensions
"을 호출하고 거기에 (내Render()
방법) 나는MvcMenuExtensions
I를 호출 내가 현재 해요 컨트롤러 이름, NOT 컨트롤러 이름을 얻을 수 있어야합니다 이 시도한 :.
string controller = this.ViewContext.RouteData.Values["controller"].ToString();
그러나 이것은이 "ActionResult
는"어디서든 페이지에서 호출되고 있기 때문에 "Helper
"컨트롤러가 아니라 내가에있어 현재의 컨트롤러 인 컨트롤러 결과 (이것은 레이아웃에의).
감사
이
당신이 질문에이 아마 대답을 제공합니다 : http://stackoverflow.com/questions/4412310/how-to-get-current-controller-and-action-f rom-inside-child-action –
당신이 해냈어!. 감사 – ShaneKm