Как представить частичное представление в ASP.NET MVC 2, используя контроллер и действие?

StackOverflow https://stackoverflow.com/questions/2408961

  •  18-09-2019
  •  | 
  •  

Вопрос

<body>
<div id="header">
<div class="title">SPORTS STORE</div>
</div>
<div id="categories">
<% Html.RenderAction("Menu", "Nav"); %>
</div>
<div id="content">
<asp:ContentPlaceHolder ID="MainContent" runat="server" />
</div>
</body>

Это образец кода из книги Стивена Сандерсона «Pro ASP.NET MVC Framework».

Этот код работает с MVC V1 и MVCContrib. Что он делает, это делает «меню» () «представление« NAV: Controller ». Поскольку ASP.NET MVC V2 включает в себя функцию Partial () и renderPartial (), я попытался ее реализовать, но этот код не работает. Я пытался изменить его несколькими способами, но кажется, что нет функции перегрузки, которая отображает частичные представления, принимая в виде параметров: 1) Имя контроллера 2) Имя просмотра

Я уверен, что я не первый человек, который внедряет renderaction () таким образом, поэтому должен быть обходной путь. Пожалуйста помоги.

Это было полезно?

Решение

Я нашел проблему. Я всегда удаляю маршрут {Controller}/{Action} и настраиваю все мои маршруты с помощью нижнего регистра, как URL. Но для html.renderaction необходимо иметь такой общий маршрут. Я добавил этот общий маршрут к концу моего списка маршрутов, и это сработало. - Махди 22 февраля в 14:42

Хотя я до сих пор не понимаю, как именно это работает, почему маршрут отстой, и каковы ограничения маршрута. Может быть, я сделаю некоторое исследование позже.

Другие советы

RenderAction находится в MVC2 (документы здесь) Похоже, вы изменили свой код на использование RenderPartial Вместо этого это совершенно другое. Изменить его на использование RenderAction И ты должен быть в порядке. Если у вас нет его в вашей версии, возможно, вам нужно обновить до последней бета -версии?

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top