HtmlHelper扩展名查找视图名称

时间:2012-06-12 12:22:57

标签: c# asp.net asp.net-mvc-3 html-helper

我正在尝试创建HtmlExtension来检索当前视图的名称。

但是,我不希望获得所请求的视图(例如“LogOn”表示“/ Account / LogOn”),而是要处理的实际文件(例如"_Layout")。

我能找到的最接近的是html.ViewDataContainer.ToString(),例如返回{ASP._Page_Views_Shared__Layout_cshtml},但我认为解析这个不是一个好主意。

这些信息是否可在Html扩展程序中找到?

提前致谢。

1 个答案:

答案 0 :(得分:2)

您可以创建这样的扩展名

public static string ViewName(this WebViewPage page)
{
  return Path.GetFileNameWithoutExtension(page.VirtualPath);
}

然后从剃须刀的角度来看,

The view name is: @this.ViewName()

或没有扩展名,

The view name is: @Path.GetFileNameWithoutExtension(VirtualPath)