0

我有一个名为 Video 的模型,其中包含一系列附加的反馈评论和反馈评论回复。我在我的视图中创建了以下循环以返回反馈评论的详细信息和相关的反馈评论回复,但是尽管 Model.SelectedScreecast.Feedbacks 的计数是 3 我可以看到有 3 条反馈记录迭代进入循环第 4 次,我收到一个对象引用错误。我的代码如下:

@foreach (var comment in Model.SelectedScreencast.Feedbacks)
        {
           <li class="comment">
             <div class="avatar"> <img src="@Url.Content("~/Images/icons/avatar.png")" width="50" height="50" alt="Avatar" /> </div>
             <div class="comment-meta">
               <h5 class="author"><a href="#">John Doe</a> - <a href="#" class="comment-reply-link">Reply</a></h5>
               <p class="date">January 06, 2011</p>
             </div>
             <div class="comment-body">
               <p>@comment.FeedbackString</p>
             </div>
             <ul class="children">

             @foreach (var reply in @comment.FeedbackReplys)
             {
               <li class="comment">
                 <div class="avatar"> <img src="@Url.Content("~/Images/icons/avatar.png")" width="50" height="50" alt="Avatar" /> </div>
                 <div class="comment-meta">
                   <h5 class="author"><a href="#">John Doe</a> - <a href="#" class="comment-reply-link">Reply</a></h5>
                   <p class="date">January 06, 2011</p>
                 </div>
                 <div class="comment-body">
                   <p>reply string</p>
                 </div>
               </li>
             }                     
             </ul>
           </li>
        }          

使用以下代码时,我能够返回预期的字符串,尽管这没有页面的必要样式。

@foreach (var comment in Model.SelectedScreencast.Feedbacks)
        {
           <li>@comment.FeedbackString</li>

             foreach (var reply in @comment.FeedbackReplys)
             {
               <li>@reply.FeedbackReplyString</li>
             }    
}

当通过调试检查和使用上面的代码块设置对象时,可能导致它评估为对象未设置为对象的实例。任何帮助将不胜感激。

4

1 回答 1

1

你的 foreach 有问题。

@foreach (var reply in @comment.FeedbackReplys)

应该 :@foreach (var reply in comment.FeedbackReplys)

甚至:foreach (var reply in comment.FeedbackReplys)

Razor 语法以@字符开始代码块,不需要显式关闭代码块。所以第二个@是多余的,第二个也可能是多余的@foreach @

不确定是否会,但希望这能解决您的问题!

于 2013-06-28T14:25:04.977 回答