MVC3.0+c#+razor:如何创建一个显示帖子和评论的页面创建部分
本文关键字:评论 显示 创建部 0+c#+razor 何创建 MVC3 创建 一个 | 更新日期: 2023-09-27 18:34:34
我正在尝试创建一个带有mvc的博客。我首先使用 EF 制作了一个数据库代码。现在我有一个页面,您可以在其中看到每页一篇帖子。下面我想显示对帖子的所有评论。这一切都工作正常。但是现在我想在同一页面上创建注释功能。
我不确定该怎么做?因为这必须创建一个新的对象"评论",而不是我在视图中设置为模型的"发布"对象。所以我有不同的模型吗?我认为这是不可能的吧?也许我可以使用"发布"模型,因为它有评论作为列表<>里面?
我是否需要为此使用分部视图或模型视图?
希望你明白我的意思和我想要完成的事情。提前提供任何帮助!
如果你的Post
模型包含一个List<Comment>
,那么你当然可以使用它。即使您确实走这条路,使用 ViewModel 包装所有模型对象也绝不是一个坏主意。
仅仅为了可维护性,我会对页面上呈现的不同模型使用部分视图,但这纯粹是个人喜好的问题。
是的,您可以使用分部视图来做到这一点。制作将注释发布到服务器的部分视图。在注释列表下方显示此部分视图。当用户发布评论时,然后通过json调用提交,并在成功时制作注释的html字符串并将其附加到评论列表中。这样,您的评论将被发布并加载到评论列表中,而无需重新加载整个模型
你的帖子应该有某种评论集。您应该能够只添加非模型绑定表单;在你的控制器中,你有你的collection
,只需将数据从中提取出来。
我的意思是:在你看来,你会有类似的东西
@Html.TextArea("CommentText")
在控制器中:
public ActionResult Create(FormCollection collection) {
string commentText = collection["CommentText"];
Post p = ... ; // Not familiar with EF
p.Comments.Add(new Comment(commentText));
p.Save(); // ActiveRecord style, not sure about EF
}
它应该非常简单。我在NHibernate上使用ActiveRecord,所以我不确定具体实体框架。您是否遇到了一些具体问题?