我正在使用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;
}
但是如何在数据库中保存注释,因为输入按钮无法执行此操作!
答案 0 :(得分:2)
您不一定需要使用JavaScript来执行此操作,但如果您希望以异步方式执行此操作以提供更具响应性的用户体验,那么您将需要JavaScript。
使用ASP.NET Web表单,可以通过多种方式在服务器端设置此表单。你可以用
使用来自客户端的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();
}