我最近开始使用 MVC,作为一个测试项目,我正在创建一个简单的“博客”。我有一个基本结构,主页显示所有帖子,当您单击它时,它将进入详细信息页面。
现在我正在尝试comments
从视图中将 (Comment.cs) 添加到我的帖子中Home/Details
,这基本上要求我在 1 个视图中拥有 2 个模型。模型 1 为Post
模型,模型 2 为Comment
模型;
- Post.cs 用于获取帖子的详细信息
- Comment.cs 用于给帖子添加评论
这是我的Home/details
观点的代码:
@model MVCPortfolio.Models.Post
@{
ViewBag.Title = "Details";
}
<h2>@Model.Title - @Model.Author</h2>
<fieldset>
<legend>Posted on @Model.Date.ToShortDateString()</legend>
<div class="content">
@Model.Content
</div>
</fieldset>
<div class="comments">
<ul>
@foreach (var c in Model.Comments)
{
<li>
@c.Content - @c.Author
</li>
}
</ul>
</div>
<div class="newcomment">
@* @Html.EditorFor(model => model) *@
</div>
<p>
@*
@Html.ActionLink("New Comment", "Comment", new { id = Model.PostId })
*@
|
@Html.ActionLink("Back to List", "Index")
</p>
这是我的家庭控制器,我想在其中添加评论。
private PortfolioEntities db = new PortfolioEntities();
//
// GET: /Home/
public ActionResult Index()
{
var posts = (from p in db.Posts
orderby p.Date
select p);
return View(posts);
}
public ActionResult Details(int id)
{
var post = (from p in db.Posts
where p.PostId == id
select p).Single();
return View(post);
}
[HttpPost]
public ActionResult Comment(Comment comment)
{
if (ModelState.IsValid)
{
db.Comments.Add(comment);
db.SaveChanges();
return RedirectToAction("Details");
}
return View(comment);
}
}
但我不明白的是如何添加comment
到 中post
,我可以轻松地添加一个新的post
(参见我的 Create.cshtml 视图),但我无法弄清楚如何comment
从post
详细视图中添加一个。
谢谢你的时间,托马斯