如何使用Razor引擎在asp.net MVC 3中获取当前URL的当前视图名称?
答案 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等)。 此属性包含当前正在呈现的文件的路径。