如何实现aspover mvc的Stackoverflow中使用的“添加注释”功能?

时间:2012-12-20 03:40:56

标签: asp.net-mvc jquery comments

如何使用mvc 3 razor(EF4)在Stackoverflow中重新创建添加注释功能?

这是模型代码:

<div>add comment</div> 

<ul id="comments">                                          
@foreach (var comment in Model) {                           
    <li>@comment</li>                                       
}                                                           
</ul>                                                       

<form method="post" id="commentForm"                        
      action="@Url.Action("AddComment")">                   

    @Html.TextArea("Comment", new { rows = 5, cols = 50 })   
    <br />
    <input type="submit" value="Add Comment" />
</form> 

如何通过ajax / jquery添加/编辑注释?它应该是局部视图吗?

1 个答案:

答案 0 :(得分:0)

我不确定StackOverflow是如何做到的,但有几种方法可以实现同样的目的。

通常,你会在页面中编写一些jQuery来截取表单帖子并使用ajax发布数据。

  1. 您可以发布到Web API或只返回返回JSON的操作。在服务器上,将注释添加到您正在使用的任何数据存储中,并使用成功结果或已保存注释的详细信息(由您决定)进行回复。完成后,使用jQuery在客户端呈现新条目 - 在您的情况下,只需添加带注释的新li。 OR

  2. 您可以发布到返回部分视图的操作。保存注释,更新集合,然后渲染局部视图。在您的jQuery中,您可以用新内容替换整个评论部分。

  3. 这是一个非常广泛的问题,还有很多其他方法可以做到这一点。您可以使用SignalR之类的东西从服务器推送新的注释(以使其实时),并且您可以使用像Knockout JS这样的JS模板框架,因此您只需要处理模板和对象数组。