Comment obtenir le nom de la vue actuelle concernant l'URL actuelle dans asp.net MVC 3 à l'aide du moteur Razor?
Vous ne savez pas pourquoi vous devez obtenir le nom de la vue actuelle, mais vous pouvez utiliser la propriété VirtualPath
dans une vue. Normalement, il est plus utile de connaître l'action ou le contrôleur en cours. Quoi qu'il en soit, voici comment obtenir le nom de la vue actuelle:
@VirtualPath
et si vous voulez obtenir uniquement le nom de fichier:
@Path.GetFileName(Server.MapPath(VirtualPath))
et sans l'extension:
@Path.GetFileNameWithoutExtension(Server.MapPath(VirtualPath))
J'ai aussi testé ce code et je pourrais faire quelque chose avec. Mais, je ne suis pas sûr si c'est une bonne solution ou non.
Par exemple, je dois détecter la vue Contacts située dans le répertoire de base. Alors j'ai écrit:
if (@Request.RawUrl == "/Home/Contacts")
{
// do something
}
Vous pouvez l'obtenir auprès de RequestContext.RouteData . En particulier, sa collection de valeurs contient les clés "controller" et "action" , C.-à-d. ____.] RequestContext.RouteData.Values ["action"]
Equivalent ASP.NET Core:
@ViewContext.ExecutingFilePath
La sortie est comme ça:
/Views/Shared/String.cshtml
Le rendu d’une vue peut impliquer un ou plusieurs fichiers (_ViewStart, Layouts, etc.). Cette propriété contient le chemin du fichier en cours de rendu.