Можно ли передать строку из файла _ViewStart в мой файл Layout?
У меня есть файл макета, который используется как моим главным сайтом, так и администратором. В макете я вызываю MVCSiteMapProvider для генерации моих макетов. То, что я хотел бы сделать, это настроить строку в файле _ViewStart, которую я могу передать в макет, чтобы указать, какой файл сайта использовать. Можно ли передать переменные из _ViewStart вниз по файлу Layout, и если да, то как?
2 ответа
Решение
Сверху головы вы можете использовать PageData.
Предоставляет доступ в виде массива к данным страницы, которые совместно используются страницами, страницами макета и частичными страницами.
_ViewStart
C#
@{
PageData["MyString"] = "Test!";
}
VB.NET
@Code
PageData("MyString") = "Test!"
End Code
_layout
C#
@PageData["MyString"]
VB.NET
@PageData("MyString")
Ты можешь использовать ViewBag
для этого.
В viewstart:
@{
ViewBag.YourString = "any string";
}
В макете:
@{
var str = (string)ViewBag.YourString;
}