Без перегрузки для метода 'RenderPartial' требуется 3 аргумента - PullRequest
0 голосов
/ 15 сентября 2018

Это сводит меня с ума, я получаю:

No overload for method 'RenderPartial' takes 3 arguments

сжатая версия моего _layout:

    <head>
    @{
      var footer = new footer(User);
      var pageTitle = ViewData["Title"].ToString();
    }
    </head>
    <body>
        @{ 
            Html.RenderPartial(
                  "_footer",
                   footer,
                   new ViewDataDictionary(this.ViewData) { { "pageTitle", pageTitle } }
            );
        }
    </body>

в моем общем _layout я пытаюсь передать модель в частичное представление и строку, предоставленную ViewData, не уверенную в том, что происходит.

Я устанавливаю заголовок со страницы _mypage.cshtml, которая использует этот макет:

@{
    Layout = "~/Views/Shared/_Layout.cshtml";
    ViewData["Title"] = "My Title";
}
<h1>Hello there</h1>

_footer - это частичное представление, где я использую объект footer, а также вызываю другое частичное представление, где мне нужен заголовок.

1 Ответ

0 голосов
/ 15 сентября 2018

Вы можете сделать это, используя ViewBag.

MyController.cs:

// set the title on a ViewBag inside your action
ViewBag.pageTitle = "My Title"; 

_layout.cshtml:

// call your partial view passing the model
@Html.Partial("footer", footer); 

_footer.cshtml:

<!-- use the ViewBag data with @ -->
<h1>@ViewBag.pageTitle</h1> 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...