/ / MVC rendern Name der Ansicht - asp.net-mvc, asp.net-mvc-2, asp.net-mvc-3

MVC rendern Name der Ansicht - asp.net-mvc, asp.net-mvc-2, asp.net-mvc-3

Wir haben einige Seiten (lassen Sie uns Elternseiten nennen), die mit RenderAction andere ASPX-Seiten aufrufen (untergeordnete Seiten nennen).

Was ich tun möchte, ist, in diesen Elternseiten eine Art Helfer zu verwenden, der den Namen dieser Kindseiten ausgibt, wenn in der Querystring debug = 1 erscheint.

@Html.AutodiscoverWidgets()

Es ist möglich, dies zu tun? Ich möchte vermeiden, in jede Child-Seite etwas wie:

@Html.AutodiscoverWidgets("NameOfTheChildView")

Was ich im Moment habe, ist die folgende Erweiterungsmethode:

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

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

}

Antworten:

1 für die Antwort № 1

Sie könnten den folgenden Helfer verwenden:

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;
}

und dann:

@Html.CurrentViewName()