MVC отображает имя представления - PullRequest
0 голосов
/ 25 января 2011

У нас есть несколько страниц (давайте назовем это родительскими страницами), которые вызывают другие .aspx (давайте назовем это дочерними страницами), используя RenderAction.

То, что я хотел бы сделать, это использовать на этих родительских страницах какое-тоof helper, который печатает имя этих дочерних страниц, если в строке запроса появляется debug = 1, используя что-то вроде:

@Html.AutodiscoverWidgets()

Возможно ли это сделать?Я бы не хотел вставлять в каждую дочернюю страницу что-то вроде:

@Html.AutodiscoverWidgets("NameOfTheChildView")

На данный момент у меня есть следующий метод расширения:

public static MvcHtmlString AutodiscoverWidgets(this HtmlHelper htmlHelper)
{
      if (HttpContext.Current.Request.QueryString["debug"].ToString() == "1")
      {

                return MvcHtmlString.Create("hello");
      }
      else
      {
                return MvcHtmlString.Create("");
      }

}

1 Ответ

1 голос
/ 25 января 2011

Вы можете использовать следующий помощник:

public static MvcHtmlString CurrentViewName(this HtmlHelper htmlHelper)
{
    var view = htmlHelper.ViewContext.View as BuildManagerCompiledView;
    if (view != null)
    {
        return MvcHtmlString.Create(view.ViewPath);
    }
    return MvcHtmlString.Empty;
}

, а затем:

@Html.CurrentViewName()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...