好的,所以我有一个半工作的博客,我试图让评论功能齐全。现在,我的所有帖子都正确显示,并带有所有相应的评论。这样做的一个问题是您实际上无法通过该站点添加评论(我只是手动进行的)。
我以前在我的控制器中创建了“创建”方法,但只能通过自动脚手架。
现在我将一个 ViewModel 传递给页面,如下所示(这会抓取与博文本身相关的主题和评论。
public ActionResult Post(int id)
{
var post = (from p in db.Set<BlogPost>()
where p.id == id
select new PostViewModel
{
Id = p.id,
Title = p.Title,
DateCreated = p.DateCreated,
Content = p.Content,
Topics = p.Topics,
Comments = p.Comments,
CommentCount = p.Comments.Count
}).Single();
return View(post);
}
然后我把它作为我的 Post.cshtml ......
<div class="blogpost">
<h2>@Model.Title</h2>
<div class="post_info">@Model.DateCreated<span class="right">Blog</span></div>
<p>@Html.Raw(Model.Content)</p>
<div class="post_close">
<span class="left">
@foreach (var topic in Model.Topics)
{
<text>@Html.DisplayFor(modelItem => topic.Name) </text>
}
</span>
<span class="right">
<img src="../../Content/images/comment.jpg" alt="" />
@if (Model.CommentCount > 1 || Model.CommentCount == 0)
{
@Model.CommentCount <text>comments</text> }
else
{
@Model.CommentCount <text>comment</text>
}
</span>
</div>
</div>
<div id="comments">
@foreach (var comment in Model.Comments)
{
<b>@Html.DisplayFor(modelItem => comment.Name)</b> <text>says... </text><br />
<i>@Html.DisplayFor(modelItem => comment.Content)</i><br />
}
</div>
在“评论” div 中,我想为人们添加一种创建新评论的方式。显然,这不会以传统方式完成,ViewModel 是 Model 而不仅仅是 Comments 模型。关于从哪里开始的任何建议?
我基本上是 MVC3 的新手,与我习惯使用 Web 表单相比,回发的整个想法非常令人困惑。任何帮助都会很有用,谢谢!
(我将使用某人可能需要的任何其他信息来编辑这篇文章)