ASP.NET MVC3 @Html.RenderPartial бросает ошибку CS1502

Я создаю приложение MVC3 для своего динамического веб-класса, и, пытаясь сделать частичный, я получаю следующую ошибку:

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

Теперь код, который я выполняю, следующий:

<div>
    <h2>Shipping Address</h2>
    @Html.RenderPartial("_AddressPartial");
</div>

Теперь я искал это в googled, и из того, что я видел, ответы все для более старых версий MVC и использовали синтаксис стиля <%% > и получили ошибки System.IO, а не System.Web ошибка, которую я получаю. Я все-таки следовал их советам и старался и без точки с запятой, что не имело никакого значения, поскольку я все еще получал YSOD каждый раз. Любые идеи?

Ответ 1

Это может быть просто потому, что RenderPartial ничего не возвращает. Попробуйте либо:

@Html.Partial("_AddressPartial")

или

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

Ответ 2

Обратите внимание, что RenderPartial не возвращает никакого значения (подобно методу RenderAction), он записывает вывод в запрос. а Partial (как и метод Action) возвращает значение MvcHtmlString.
SO @Html... должен вернуть некоторое значение, а @{... некоторый код...} не обязательно.
В вашем случае, если вы хотите использовать renderPartial, используйте его так:

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

Но почему бы не использовать Partial-метод, который вы можете использовать так:

@Html.Partial("_AddressPartial")