Как я могу заставить имя представлений и частичные представления быть представленными с остальной разметкой? - PullRequest
1 голос
/ 17 февраля 2012

Мне бы хотелось, особенно в конфигурации отладочной сборки, например, чтобы представления и частичные представления передавали свои имена файлов в разметку, которую они отображают. Есть ли какое-нибудь легкодоступное свойство view, которое я могу использовать? Или мне пришлось бы переопределить что-то вроде метода View в производном контроллере, чтобы выдвинуть эти данные в представление по мере их визуализации?

В сторону: В настоящее время все мои модели представлений выводятся из ViewModelBase, так что это может быть одним из векторов передачи этой информации в отображаемый HTML, но я не знаю, где начать.

РЕДАКТИРОВАТЬ: Ответ Джеймса ниже идеально подходит, чтобы сообщить мне, где получить информацию и как ее представить, но я был бы признателен за некоторые предложения о том, как включить эту информацию во все представления и частичные. Я понимаю, что мне, вероятно, придется прибегнуть к некоторому низкоуровневому структурному кодированию, такому как добавление перегрузки RenderPartial, которая рендерит элемент контейнера, на котором я могу пометить имя представления, например, в моем первом проходе решения о выполнении следующего в моем мастере макет и виды:

_Layout.cshtml:

<section id="main" data-viewname="@(ViewBag.BodyViewName)">
    @RenderBody()
</section>

[AllViews] .cshtml:

@{
    ViewBag.BodyViewName = this.VirtualPath;
    ViewBag.Title = "My Courses";
}

1 Ответ

0 голосов
/ 17 февраля 2012

Вы можете использовать свойство VirtualPath, которое является членом класса WebPageBase, который представляет бритвенную страницу. Внутри вашего представления или частичного представления вы можете получить доступ к этому классу и отобразить его свойство так:

@Html.Raw(this.VirtualPath)

Edit:

Для движка aspx view вы можете использовать это:

<% this.AppRelativeVirtualPath %>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...