/ / MVC rende il nome della vista - asp.net-mvc, asp.net-mvc-2, asp.net-mvc-3

MVC rende il nome della vista - asp.net-mvc, asp.net-mvc-2, asp.net-mvc-3

Abbiamo alcune pagine (chiamiamole pagine padre) che chiamano ad altre .aspx (chiamiamole pagine figlio) usando RenderAction.

Quello che vorrei fare è usare in queste pagine padre una sorta di aiuto che stampa il nome di queste pagine secondarie se nella stringa di query appare debug = 1 usando qualcosa come:

@Html.AutodiscoverWidgets()

È possibile farlo? Vorrei evitare di mettere in ogni pagina figlio qualcosa come:

@Html.AutodiscoverWidgets("NameOfTheChildView")

Quello che ho al momento è il seguente metodo di estensione:

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

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

}

risposte:

1 per risposta № 1

È possibile utilizzare il seguente aiuto:

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

e poi:

@Html.CurrentViewName()