如何在asp.net MVC 3中获取当前视图名称?

时间:2011-06-10 19:57:32

标签: asp.net asp.net-mvc-3 razor

如何使用Razor引擎在asp.net MVC 3中获取当前URL的当前视图名称?

4 个答案:

答案 0 :(得分:31)

不知道为什么需要获取当前视图名称,但可以在视图中使用VirtualPath属性。通常,了解当前操作或控制器更有用。但无论如何,这里是如何获取当前视图名称:

@VirtualPath

如果您只想获取文件名:

@Path.GetFileName(Server.MapPath(VirtualPath))

没有扩展名:

@Path.GetFileNameWithoutExtension(Server.MapPath(VirtualPath))

答案 1 :(得分:8)

我也测试了这段代码,我可以用它做点什么。 但是,我不确定这是否是一个好的解决方案。

例如,我需要检测位于主目录中的“联系人”视图。所以我写道:

if (@Request.RawUrl == "/Home/Contacts")
{
   // do something
}

答案 2 :(得分:4)

您可以从RequestContext.RouteData获取它 特别是,其Values集合包含“controller”和“action”键 即 RequestContext.RouteData.Values [ “控制器”] RequestContext.RouteData.Values [ “行动”]

答案 3 :(得分:1)

ASP.NET Core的等价物:

@ViewContext.ExecutingFilePath

输出是这样的:

/Views/Shared/String.cshtml
  

视图的渲染可能涉及一个或多个文件(例如_ViewStart,Layouts等)。   此属性包含当前正在呈现的文件的路径。

     

ViewContext.ExecutingFilePath Property