Подтвердить что ты не робот

Как установить свойства ViewBag на _ViewStart.cshtml?

У меня есть определенное свойство ViewBag, которое я хотел бы установить на уровне ViewStart. В идеале я хотел бы, если это необходимо, переопределить это свойство на странице. Это возможно? Если да, как мне получить доступ к свойству ViewBag на странице ViewStart?

4b9b3361

Ответ 1

Есть два способа сделать это:

  • Используйте свойство PageData (это нечто более применимое к веб-страницам ASP.NET и редко используется в MVC)

    • Set:

      @{
          PageData["message"] = "Hello";
      }
      
    • Получить

      <h2>@PageData["message"]</h2>
      
  • Попробуйте найти экземпляр представления (код немного грязный, но он дает вам доступ непосредственно к ViewBag/ViewData

    • Set:

      @{
          var c = this.ChildPage;
          while (c != null) {
              var vp = c as WebViewPage;
              if (vp != null) {
                  vp.ViewBag.Message = "Hello1";
                  break;
              }
              c = c.ChildPage;
          }
      }
      
    • Извлеките: как обычно

      <h2>@ViewBag.Message</h2>