#asp.net-mvc #razor
#asp.net-mvc #razor
Вопрос:
Моя страница просмотра razor выглядит так:
@foreach (var comment in Model.Comments)
{
@Html.RenderPartial("Comment", comment);
}
И мое частичное представление находится в /Shared/Comment.cshtml
@model Comment
<div>
<span class="user">@Model.Name</span>
...
</p>
Я получаю эту ошибку:
Compilation Error
Description: An error occurred during the compilation of a resource required to service this request. Please review the following specific error details and modify your source code appropriately.
Compiler Error Message: CS1502: The best overloaded method match for 'System.Web.WebPages.WebPageExecutingBase.Write(System.Web.WebPages.HelperResult)' has some invalid arguments
(it then highlights the call to @Html.RenderPartial("Comment", comment);
Ответ №1:
Вам не нужен символ «@» перед Html, поскольку он указан перед любым html:
@foreach (var comment in Model.Comments)
{
Html.RenderPartial("Comment", comment);
}
Кроме того, Html.RenderPartial ничего не возвращает. Итак, он должен выполняться в блоке кода (приведенный выше случай учитывается).
Синтаксис @[some method] действителен только для методов, которые возвращают что-то, что Razor может преобразовать в строку.