Подтвердить что ты не робот

Как получить текущее имя в asp.net MVC 3?

Как получить текущее имя представления относительно текущего URL-адреса в asp.net MVC 3 с помощью механизма Razor?

4b9b3361

Ответ 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 и т.д.). Это свойство содержит путь к файлу, который в данный момент отображается.

Свойство ViewContext.ExecutingFilePath