开发者

How to get the current view name in asp.net MVC 3?

开发者 https://www.devze.com 2023-03-12 16:00 出处:网络
How can I get the current view name regarding to current URL, in asp.net MVC 3 using Razor engine开发者_如何转开发?No idea why you would need to get the current view name but you could use the Virtual

How can I get the current view name regarding to current URL, in asp.net MVC 3 using Razor engine开发者_如何转开发?


No idea why you would need to get the current view name but you could use the VirtualPath property inside a view. Normally it's more useful to know the current action or controller. But anyway, here's how to get the current view name:

@VirtualPath

and if you wanted to get only the filename:

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

and without the extension:

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


I've also tested this code, and I could do something with it. But, I'm not sure if is this a good solution or not.

For example, I need to detect the Contacts view located in Home directory. So I wrote:

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


You can get it from RequestContext.RouteData specifically, its Values collection contains "controller" and "action" keys i.e. RequestContext.RouteData.Values["controller"] RequestContext.RouteData.Values["action"]


ASP.NET Core's equivalent:

@ViewContext.ExecutingFilePath

Output is like this:

/Views/Shared/String.cshtml

The rendering of a view may involve one or more files (e.g. _ViewStart, Layouts etc). This property contains the path of the file currently being rendered.

ViewContext.ExecutingFilePath Property

0

精彩评论

暂无评论...
验证码 换一张
取 消