Html.RenderPartial дает мне странную ошибку перегрузки? - PullRequest
102 голосов
/ 25 марта 2011

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

<div>hi</div>

А в вызывающем cshtml-представлении я просто положил:

@Html.RenderPartial("_Test")

Что дает мне ошибку:

CS1502: лучший перегруженный метод соответствовать 'System.Web.WebPages.WebPageExecutingBase.Write (System.Web.WebPages.HelperResult)' имеет недопустимые аргументы

Я также пробовал полный путь с тем же результатом.

Я очень озадачен тем, почему это так, я полагаю, что упускаю что-то простое?

1 Ответ

189 голосов
/ 25 марта 2011

Вы получаете эту ошибку, потому что Html.RenderXXX помощники возвращают void - им нечего возвращать, потому что они пишут вещи прямо * в ответ.Вы должны использовать их следующим образом:

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

Существует также Html.Partial helper, который будет работать с вашим синтаксисом, но я бы не рекомендовал использовать его, если вам не нужно, из-за производительности (сначалакомпонует данное частичное представление в строку, а затем родительское представление помещает его в ответ *).

* это не совсем верно, они фактически отображаются в ViewContext.Writer, и как только вся страница отображается и составляется,все идет к ответу

...