将元素添加到asp.NET中的对象列表中

时间:2014-08-02 15:49:40

标签: c# asp.net-mvc

我使用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!

1 个答案:

答案 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())