我使用MVC和实体框架创建一个简单的博客。
这是我的两个班级:
public class BlogPost
{
public int BlogPostID { get; set; }
public string Title { get; set; }
public string Post { get; set; }
public DateTime Date { get; set; }
public virtual ICollection<Comments> Comments { get; set; }
}
public class Comments
{
public int CommentsID { get; set; }
public string Comment { get; set; }
public string Author { get; set; }
public DateTime Date { get; set; }
public int BlogPostID { get; set; }
}
现在,在我看来,我展示了一个Blogpost,我希望用户能够留下评论,我想这样做的最好方法是创建一个beginform。这就是我所拥有的:
@using (Html.BeginForm("AddComment", "BlogPosts", new { blogid = @Model.BlogPostID }, FormMethod.Post))
{
@Html.TextBoxFor() <---How do i acess the "Author"-property in comments?
@Html.TextAreaFor() <---How do i acess the "Comment"-property in comments?
<button type="submit">Add Comment</button>
}
当解决上述问题时,我将使用此方法将注释添加到db:
public ActionResult AddComment(int blogid, Comments model)
{
BlogPost blogPost = db.BlogPosts.Find(blogid);
blogPost.Comments.Add(model);
db.SaveChanges();
return RedirectToAction("Index");
}
这看起来像是一个很好的方式来完成这样的任务,还是我可能会遗漏一些基本的东西? Thans!
答案 0 :(得分:1)
创建部分视图以添加注释部分视图的模型将是注释类型
现在在你的局部视图中放在剃刀下面
@model Comments
@using (Html.BeginForm("AddComment", "BlogPosts", new { blogid = @Model.BlogPostID }, FormMethod.Post))
{
@Html.TextBoxFor(model=>model.Author)
@Html.TextAreaFor(model=>model.Comment)
<button type="submit">Add Comment</button>
}
让我们调用这个局部视图AddComment.cshtml
现在在博客文章视图中,在底部添加此部分视图,如
@Html.Partial("AddComment",new Comments())