Как сделать частичное представление в asp.net MVC 2 с помощью контроллера и действий? - PullRequest
4 голосов
/ 09 марта 2010
<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. Что он делает, он отображает «Menu ()» «Nav: Controller». Поскольку ASP.NET MVC V2 включает в себя функции Partial () и RenderPartial (), я попытался реализовать это, но этот код не работает. Я попытался изменить его несколькими способами, но, похоже, нет функции перегрузки, которая отображает частичные представления, принимая в качестве параметров: 1) Имя контроллера 2) Посмотреть имя

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

Ответы [ 2 ]

4 голосов
/ 09 марта 2010

Я нашел проблему. Я всегда удаляю маршрут {controller} / {action} и настраиваю все мои маршруты с помощью строчных REST-подобных URL. Но для Html.RenderAction необходим такой общий маршрут. Я добавил этот общий маршрут в конец моего списка маршрутов, и он сработал. - Махди 22 февраля в 14: 42

Хотя я до сих пор не понимаю, КАК ТОЧНО это работает, почему необходим маршрут suck и каковы ограничения маршрута. Может быть, я сделаю некоторые исследования позже.

1 голос
/ 09 марта 2010

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...