用ASP.NET添加facebook等评论

时间:2010-06-09 21:13:06

标签: asp.net javascript jquery ajax facebook

我正在使用blog开发ASP.NET,我希望用户能够添加评论。

所以我想在添加评论时实现facebook的想法。

评论将存储在database中,因此如果用户转到其他网页,我将能够将其加载到页面中。

您知道我该怎么做(Ajax,Javascript,jQuery,Ajax Toolkit)?

修改

我发现了这个:

<body>

<form id="form1" runat="server">

<p>

<textarea id="textArea"></textarea>

</p>

<input type="submit" value="Commenter"/>

<br />

</form>

<p>Add some Test to the page</p>

</body>

script.js

window.onload = initAll;

function initAll() {

document.getElementsByTagName("form")[0].onsubmit = addNode;

}

function addNode() {

var inText = document.getElementById("textArea").value;

var newText = document.createTextNode(inText);

var newGraf = document.createElement("p");

newGraf.appendChild(newText);

var docBody = document.getElementsByTagName("body")[0];

docBody.appendChild(newGraf);

return false;

}

但是如何在数据库中保存注释,因为输入按钮无法执行此操作!

2 个答案:

答案 0 :(得分:2)

您不一定需要使用JavaScript来执行此操作,但如果您希望以异步方式执行此操作以提供更具响应性的用户体验,那么您将需要JavaScript。

使用ASP.NET Web表单,可以通过多种方式在服务器端设置此表单。你可以用

  1. Page methods
  2. ASMX web services
  3. WCF services
  4. 使用来自客户端的JavaScript调用它们。在服务器端代码内部,您将连接到数据库,执行CRUD操作并将响应返回给进行AJAX调用的客户端。

    关于安全性的说明 - 您需要清理注释并缓解SQL注入,XSS,XSRF和其他类型的注入攻击。 Anti-XSS library (很快将被Web Protection库取代)是一个很好的工具,可以利用这一点来提供比ASP.NET中的标准编码更好的编码方法

答案 1 :(得分:1)

通常,如果您使用GridView显示这些博客帖子,只需在Gridview中添加模板字段即可。在模板文件中,您放置了一个文本框和一个按钮。

当用户点击按钮时,使用你的代码查找postID和文本框,并将其保存到数据库,然后记得再次将数据绑定到gridview。

以下是一些示例代码。

protected void btnBuy_Click(object sender, ImageClickEventArgs e)
{
    ImageButton btnBuy = (ImageButton)sender; //Find which button is clicked.
    //If that is a button, use Button btnBuy = (Button)Sender;

    GridViewRow row = (GridViewRow)btnBuy.NamingContainer; //Find which gridview row     //containes the clicked button

    Label lblPostID = (Label)row.FindControl("lblPostID"); //Find the post ID
    TextBox txtComment = (TextBox)row.FindControl("txtComments"); //Find the textbox

    //Save the data to database.
    //Put your code here.

    //Bind the gridview with the data source which got some new data.
    GridView1.DataSource = yourDataSource;
    GridView1.DataBind();
}