Как получить текущее имя представления относительно текущего URL-адреса в asp.net MVC 3 с помощью механизма Razor?
Как получить текущее имя в asp.net MVC 3?
Ответ 1
Не знаю, почему вам нужно получить текущее имя вида, но вы можете использовать свойство VirtualPath
внутри представления. Обычно более полезно знать текущее действие или контроллер. Но в любом случае здесь, как получить текущее имя вида:
@VirtualPath
и если вы хотите получить только имя файла:
@Path.GetFileName(Server.MapPath(VirtualPath))
и без расширения:
@Path.GetFileNameWithoutExtension(Server.MapPath(VirtualPath))
Ответ 2
Я также тестировал этот код, и я мог что-то с этим сделать. Но я не уверен, что это хорошее решение или нет.
Например, мне нужно обнаружить вид контактов, расположенный в домашнем каталоге. Поэтому я написал:
if (@Request.RawUrl == "/Home/Contacts")
{
// do something
}
Ответ 3
Вы можете получить его из RequestContext.RouteData в частности, его коллекция "Значения" содержит клавиши "контроллер" и "действие" то есть RequestContext.RouteData.Values [ "контроллер" ] RequestContext.RouteData.Values [ "действие" ]
Ответ 4
Аналоговый эквивалент ASP.NET:
@ViewContext.ExecutingFilePath
Вывод выглядит следующим образом:
/Views/Shared/String.cshtml
Отрисовка представления может включать один или несколько файлов (например, _ViewStart, Layouts и т.д.). Это свойство содержит путь к файлу, который в данный момент отображается.