RenderPartial из другой папки в RAZOR - PullRequest
11 голосов
/ 24 декабря 2010

Я пытался преобразовать свои aspx-страницы в cshtml и у меня возникла проблема с отображением частичных страниц из другой папки.

Что я делал раньше:

<% Html.RenderPartial("~/Views/Inquiry/InquiryList.ascx", Model.InquiryList.OrderBy("InquiryId", MvcContrib.Sorting.SortDirection.Descending));%>

Я быдумаю, что эквивалент будет:

@Html.RenderPartial("~/Views/Inquiry/_InquiryList.cshtml", Model.InquiryList.OrderBy("InquiryId", MvcContrib.Sorting.SortDirection.Descending))

Это, очевидно, не работает, я получаю следующую ошибку.

CS1973: 'System.Web.Mvc.HtmlHelper' имеетнет подходящего метода с именем 'Partial', но, похоже, у него есть метод расширения с этим именем.Методы расширения не могут быть динамически отправлены.Подумайте о приведении динамических аргументов или вызове метода расширения без синтаксиса метода расширения.

Как бы я этого достиг, используя механизм представления Razor?

Ответы [ 3 ]

24 голосов
/ 24 декабря 2010

RenderPartial не возвращает строку или значение IHtmlString. Но выполняет ли это рендеринг, вызывая запись в ответе.

Вы можете использовать расширение Partial , это возвращает MvcHtmlString

 @Html.Partial( ....

или

 @{ Html.RenderPartial(....);  }

Если вы действительно хотите RenderPartial

7 голосов
/ 24 декабря 2010

Компилятор не может выбрать правильный метод, потому что ваша Модель динамическая.Измените вызов на:

@Html.RenderPartial("~/Views/Inquiry/_InquiryList.cshtml", (List<string>)Model.InquiryList)

Или на любой тип данных InquiryList.

2 голосов
/ 06 июля 2012

Не забудьте включить вашу строго типизированную директиву @model в новое представление Razor. Это простой шаг, который нужно пропустить при преобразовании представлений из .aspx в .cshtml. Если вы забудете, что 'System.Web.Mvc.HtmlHelper' не имеет применимого метода с именем 'Partial' , может появиться сообщение об ошибке.

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