System.Web.HttpParseException:'在“ @”字符后出现意外的“ {”

时间:2018-12-29 02:03:11

标签: c# asp.net asp.net-mvc razor

尝试呈现PartialView时出现此异常。当我更改@{Html.RenderPartial("_ChildReplies", parRep.ChildReplies);}
@Html.Partial("_ChildReplies", parRep.ChildReplies)仍然出现相同的异常。

@model List<Reply>

@using YourPlace.Models

<ul>
@foreach (var parRep in Model)
{
    <li>
        Author: @parRep.AuthorName
        Comment: @parRep.AuthorName
        <div>
        @{Html.RenderPartial("_ChildReplies", parRep.ChildReplies);}
        </div>
    </li>
}
</ul>

1 个答案:

答案 0 :(得分:0)

上面的代码看起来正确 ...如果遇到此错误,可能是因为 _ChildReplies 部分视图中出现了问题,您没有在其中显示您的问题...


Good explanation here

  
      
  • RenderPartial()是一个写入响应流的void方法。在C#中,void方法需要一个;因此必须用   {}。
  •   
  • Partial()是一种返回MvcHtmlString的方法。在Razor中,您可以调用仅返回一个字符串的属性或方法。   @前缀可将其与页面上的普通HTML区别开来。
  •   

因此您需要使用以下内容:

@{ Html.RenderPartial("_ChildReplies", parRep.ChildReplies); }

或者这个:

@Html.Partial("_ChildReplies", parRep.ChildReplies);