Я использую MVC 3 с движком просмотра Razor. Я хочу установить некоторые значения в ViewBag внутри Partial View и хочу получить эти значения в моем _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, заголовок страницы "О нас" . Итак, теперь я хочу отобразить частичный вид внутри своего представления About, и я хочу изменить ViewBag.Title внутри моего частичного представления. ( "/Views/Shared/SomePartial.cshtml" )
@Html.Partial("SomePartial")
В этом частичном представлении у меня есть этот код:
@{
ViewBag.Title = "About Us From The Partial View";
}
Когда я отлаживаю этот код, я вижу, что ViewBag.Title получает значение "О нас" , а затем в частичном представлении я вижу, что он получает reset в "О нас из частичного просмотра", но когда код попадает в _Layout.cshtml он возвращается к "О нас" .
Означает ли это, что если содержимое ViewBag будет изменено в частичном представлении, эти изменения не будут отображаться (быть доступными) в главном представлении (About.cshtml) или _Layout.cshtml?
Спасибо заранее!