我们有一些页面(让我们称之为父页面)使用RenderAction调用其他.aspx(让我们称之为子页面)。
我想要做的是在这些父页面中使用某种帮助程序,如果在查询字符串中出现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("");
}
}
答案 0 :(得分:1)
您可以使用以下帮助程序:
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()