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

RenderPartial из другой папки в RAZOR

Я пытаюсь преобразовать мои страницы 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' не имеет применимого метода, названного "Частичный", но, похоже, имеет метод расширения с помощью этого имени. Методы расширения не могут быть динамически отправляется. Рассматривать литье динамических аргументов или вызов метода расширения без синтаксис метода расширения.

Как я могу достичь этого с помощью механизма просмотра Razor?

4b9b3361

Ответ 1

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

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

 @Html.Partial( ....

или

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

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

Ответ 2

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

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

Или для любого типа данных. Список запросов.

Ответ 3

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