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()