Html.RenderPartial дає мені дивну помилку перевантаження?


103

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

<div>hi</div>

А в перегляді виклику cshtml я просто ставлю:

@Html.RenderPartial("_Test")

Що дає мені помилку:

CS1502: Найкращий збіг перевантажених методів для 'System.Web.WebPages.WebPageExecutingBase.Write (System.Web.WebPages.HelperResult)' має деякі недійсні аргументи

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

Я дуже розгублений, чому це діє так, я припускаю, що я пропускаю щось просте?

Відповіді:


190

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

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

Є також Html.Partial helper, який буде працювати з вашим синтаксисом, але я б не рекомендував використовувати його, якщо вам не доведеться, через ефективність (спочатку складається частинний перегляд у рядок, а потім батьківський погляд ставить його у відповідь * ).

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.