Можно ли передать строку из файла _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;
}
Другие вопросы по тегам