在博客文章细节上显示评论
本文关键字:显示 评论 细节 文章 | 更新日期: 2023-09-27 18:05:32
目前我有一个部分视图,显示与某个blogid关联的数据库中的评论。我这辈子都没法让这事成功。我甚至不知道如何将blogid传递给partial,所以我提取了正确的注释。以下是我到目前为止写的。
/Blog/Details评论部分
<h2>Comments</h2>
<hr/>
@if (!User.Identity.IsAuthenticated)
{
<p>You Must Be Logged In To Comment.</p>
}
else
{
@: Posting comments as @User.Identity.Name<hr/>
@Html.Action("Create", "Comment", new {blogId = Model.Id});
@: <hr/>
}
@Html.Partial("_Comments")
_Comments partial view
@model IEnumerable<GregG.Models.Comment>
@foreach (var item in Model) {
if (item.BlogId == 1) //I need to make this dynamic but can't figure out how to pass the id
{
<small>Posted by: @Html.DisplayFor(modelItem => item.UserName) on: @Html.DisplayFor(modelItem => item.PostedDate)</small>
@Html.DisplayFor(modelItem => item.Meat)<hr/>
}
}
我的第一个问题是:我如何将我的博客Id传递给部分。我的第二个问题是为什么在我的局部行上收到这个错误。
传入字典的模型项的类型是'System.Data.Entity.DynamicProxies '。Blog_18032B13AD6163845F0AE57E827683E3638FD813CA4EE066F28D05E5406E633D',但是这个字典需要一个类型为'System.Collections.Generic.IEnumerable ' 1[GregG.Models.Comment]'的模型项。
提前感谢您的帮助。
支持为数据指定视图模型的Patial
方法有几个重载。如果想要显示的注释已经是当前视图模型的一部分,请使用此方法。
@Html.Partial("_Comments", Model.Comments)
但是,如果它们不是视图模型的一部分,我建议在您的CommentController
中创建一个单独的操作,如下所示:
Action List(int blogId)
{
// query comments from database
var model = db.Comments.Where(c => c.BlogId == blogId);
return View(model);
}
从你的/Blog/Details.cshtml
文件中调用它,像这样:
@Html.Action("List", "Comment", new { blogId = Model.Id })