カスタムヘルパークラスでコントローラー名を取得できる必要があります。
私は次のものを持っています:
- コントローラを呼び出すレイアウトビュー:「HelperController」、アクション:「メニュー」のように:
@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
私はこれを試しました:
string controller = this.ViewContext.RouteData.Values["controller"].ToString();
ただし、これにより、コントローラーは " Helper
"コントローラーになり、現在のコントローラーではありません。この " ActionResult
"はページのどこからでも呼び出されているため(レイアウト内にあります)。
ありがとう