MVC3.0+;c#和#x2B;razor:如何创建一个显示帖子的页面,并创建评论部分

MVC3.0+;c#和#x2B;razor:如何创建一个显示帖子的页面,并创建评论部分,c#,asp.net-mvc,entity-framework,razor,C#,Asp.net Mvc,Entity Framework,Razor,我正在尝试用mvc创建一个博客。我先用EF做了一个数据库代码。现在我有一个页面,你可以看到每页一篇文章。下面我想显示所有评论的帖子。一切正常。但是现在我想在同一个页面上创建一个评论功能 我不知道该怎么做?因为这必须创建一个新对象“comment”,而不是我在视图中设置为模型的“post”对象。所以我认为有不同的模型?我不认为这是可能的,对吗?也许我可以使用“post”模型,因为它有注释作为列表 我需要使用局部视图还是模型视图 希望你知道我的意思和我想要实现的目标。Tnx提前为您提供任何帮助 如果

我正在尝试用mvc创建一个博客。我先用EF做了一个数据库代码。现在我有一个页面,你可以看到每页一篇文章。下面我想显示所有评论的帖子。一切正常。但是现在我想在同一个页面上创建一个评论功能

我不知道该怎么做?因为这必须创建一个新对象“comment”,而不是我在视图中设置为模型的“post”对象。所以我认为有不同的模型?我不认为这是可能的,对吗?也许我可以使用“post”模型,因为它有注释作为列表

我需要使用局部视图还是模型视图


希望你知道我的意思和我想要实现的目标。Tnx提前为您提供任何帮助

如果您的
Post
模型包含
列表
,那么您当然可以使用它。即使您确实这样做了,使用ViewModel包装所有模型对象也不是一个坏主意


仅仅为了可维护性,我会对页面上呈现的不同模型使用部分视图,但这纯粹是个人偏好的问题。

如果您的
Post
模型包含
列表,那么您当然可以使用该列表。即使您确实这样做了,使用ViewModel包装所有模型对象也不是一个坏主意


仅仅是为了维护,我会对页面上呈现的不同模型使用部分视图,但这纯粹是个人偏好的问题。

您的帖子应该有某种评论集。您应该能够只添加一个非模型绑定表单;在控制器中,您拥有
集合
,只需从中提取数据即可

我的意思是:在你看来,你会有

@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,所以我不确定具体的实体框架。你有什么特别的问题吗?

你的文章应该有某种评论集。您应该能够只添加一个非模型绑定表单;在控制器中,您拥有
集合
,只需从中提取数据即可

我的意思是:在你看来,你会有

@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,所以我不确定具体的实体框架。您遇到了什么具体问题吗?

是的,您可以使用局部视图来解决。创建向服务器发布注释的局部视图。在注释列表下方显示此局部视图。当用户发布评论,然后通过json调用提交评论,成功后生成评论的html字符串并将其附加到评论列表中。
这样,您的评论将被发布并加载到评论列表中,而无需重新加载整个模型

是的,您可以使用局部视图来完成此操作。创建向服务器发布注释的局部视图。在注释列表下方显示此局部视图。当用户发布评论,然后通过json调用提交评论,成功后生成评论的html字符串并将其附加到评论列表中。
这样,您的评论将被发布并加载到评论列表中,而无需重新加载整个模型。我需要将我的视图连接到我的postcontroller或commentcontroller吗?@VonField我猜在这里,但我怀疑您的postcontroller将用于显示帖子和评论,但您希望将评论表单帖子添加到您的commentcontroller.Tnx Nathan。我需要将我的视图连接到我的postcontroller或commentcontroller吗?@VonField我猜在这里,但我怀疑你的postcontroller将用于显示帖子和评论,但你希望将评论表单帖子添加到你的commentcontroller。听起来不错。为解释干杯。但是我没有任何json的经验,所以我必须对此进行一些阅读。我要试一试。这个网站有很多关于json的信息,听起来不错。为解释干杯。但是我没有任何json的经验,所以我必须对此进行一些阅读。我要试一试。这个网站有关于json的好信息