ASP.NET MVC3 @ Html.RenderPartial выдает ошибку CS1502 - PullRequest
11 голосов
/ 10 ноября 2011

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

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

Теперь код, который я выполняю, таков:

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

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

Ответы [ 2 ]

26 голосов
/ 10 ноября 2011

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

@Html.Partial("_AddressPartial")

или

@{ Html.RenderPartial("_AddressPartial"); }
6 голосов
/ 10 ноября 2011

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

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

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

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