我正在开发一个网站,提供问题和答案(只是纯文本),到目前为止我已经完成了后端和前端设计。
伙计们,我知道有很多问题要问这个问题,但是,我已经完成了大部分内容,正如您在屏幕截图中看到的那样。屏幕截图取自我使用两个嵌套转发器和一些CSS样式实现的实际网页(红色墨水除外)。数据库也已设置好,目前已提取,格式化和显示数据。
我需要知道如何提交评论。每个问题组的末尾都有一个textarea和一个提交按钮,此提交应该将内容加载到数据库并将注释附加到父级,ALL没有完整的POST BACK(页面刷新)。
P.S:不要介意它上面的愚蠢文字:D
准备好接受您可能提供的任何东西。感谢
答案 0 :(得分:1)
由于您在ASP.NET中提到了回发,我假设您使用的是Web表单。
UpdatePanels(ASP.NET AJAX)
如果您试图避免完整的回发,那么明智地使用UpdatePanel
将是使用ASP.NET中的Web表单实现该结果的最快方法。通过“明智地使用”,我的意思是:
视图状态已停用或非常非常小
总的异步POST大小是< 2K(请记住页面上的所有表单字段都将以UpdatePanel
提交),无论它们是否在其中。
UpdatePanel
上的UpdateMode设置为Conditional
。
页面上有一个合理的数字(通常少于10)UpdatePanels
。页面上的每个UpdatePanel都会生成脚本,并增加了呈现页面的开销。
你在UpdatePanel
内没有做太复杂的事情; “复杂”的一个很好的例子是客户端脚本/插件,当面板的innerHTML
更新时,它会“混淆”。
jQuery / WCF解决方案
或者,您可以使用jQuery ajax
方法将数据发送回服务器以响应某些事件(例如单击按钮)。这将需要客户端代码和某种服务器端处理程序来处理传入的数据,将其持久保存到数据库或视图模型等。
这是使用jQuery的ajax()
方法的缩写示例。
$.ajax({
type: "GET|POST", // pick GET or POST
url: "handler URL here",
dataType: "json",
data: { }, // JSON object containing data
success: function (data) {
// fired upon success
}
});
WCF是处理传入数据的绝佳选择。 ASP.NET 4.0强有力地支持基于JSON的消息传递,并提供对安全性的精细控制,以防止未经授权的请求。 WCF端点可以是ASP.NET会话感知的。
答案 1 :(得分:1)
假设您在应用程序中使用jQuery是正常的。
假设用于发送邮件的按钮的ID是“sendBtn”,文本框的ID是“chatTxt” - 所有聊天消息都显示在ID为“chatContainer”的div中。
对于AJAX-POST,您的代码将类似于:
$.post(
"chat.php", // replace this with your server side script that saves chat messages
{
text: $('#chatTxt').val()
},
function(data) { // this will be called once the server returns, lets say it returns OK on success
if(data == "OK") {
// code to append the item to the chatContainer
// replace the appended HTML with the actual structure of each chat item in your app
$('#chatContainer').append('<div class="chatitem">'+$('#chatTxt').val()+'</div>');
}
}
);