Я использую MVC 3 с движком Razor. Я хочу установить некоторые значения в ViewBag внутри частичного представления и хочу получить эти значения в моем _Layout.cshtml. Например, при настройке проекта ASP.NET MVC 3 по умолчанию вы получаете файл _Layout.cshtml в папке «/ Views / Shared». В этом _Layout.cshtml заголовок страницы установлен так:
<title>@ViewBag.PageTitle</title>
Затем в представлении «/Views/Home/About.cshtml» содержимое ViewBag изменяется:
@{
ViewBag.Title = "About Us";
}
Это отлично работает. Когда отображается представление «О программе», заголовок страницы «О нас». Итак, теперь я хочу визуализировать частичное представление в моем представлении About и хочу изменить ViewBag.Title внутри моего частичного представления. ( "/Views/Shared/SomePartial.cshtml")
@Html.Partial("SomePartial")
В этом Частичном представлении у меня есть этот код:
@{
ViewBag.Title = "About Us From The Partial View";
}
Когда я отлаживаю этот код, я вижу, что ViewBag.Title устанавливается в «О нас», а затем в представлении «Частично» я вижу, что он сбрасывается в «О нас из представления с частичным представлением», но когда код достигает _Layout. cshtml восходит к «О нас».
Означает ли это, что если содержимое ViewBag изменяется в частичном представлении, эти изменения не будут отображаться (быть доступными) в главном представлении (About.cshtml) или в _Layout.cshtml?
Заранее спасибо!