[英]How to return response to .aspx page from Handler in asp.net
我刚刚开始在asp.net中使用处理程序,但我有一个问题。 我有这样结构的PostRequestPage.aspx页面:
<asp:Label ID="lblTest" Text="Enter request" runat="server"></asp:Label>
<br />
<asp:TextBox ID="txtEmail" runat="server"></asp:TextBox>
<br />
<span id="error"></span>
<br />
<input type="button" id="btnSubmit" name="btnSubmit" value="Send" />
然后使用这样的ajax帖子将POST发送给处理程序:
$(document).ready(function () {
$('#btnSubmit').click(function() {
var txtEmail = '<%=txtEmail.ClientID%>';
$.ajax({
type: "POST",
url: "HandlerWithPOST.ashx",
data: $('#' + txtEmail).val(),
dataType:"json",
});
});
})
在处理程序中,我得到了POST数据:
using (var reader = new StreamReader(context.Request.InputStream))
{
String requestFromPost = reader.ReadToEnd();
var result = JsonConvert.DeserializeObject<List<RootObject>>(requestFromPost);
}
然后,我处理我的数据并获得我想返回到PostRequestPage.aspx页面的响应:
String jsonResult = JsonConvert.SerializeObject(new { result = results });
问题是例如如何在标签中显示jsonResult?
您可以像这样扩展ajax方法:
$.ajax({
type: "POST",
url: "HandlerWithPOST.ashx",
data: $('#' + txtEmail).val(),
dataType:"json",
success: function (data) {
// do some magic with your json data, like populating your label
}
});
看看jQuery.ajax()api: http : //api.jquery.com/jQuery.ajax/
用于将数据写入响应尝试
context.Response.Write(jsonResult)
也在写集之前
context.Response.ContentType = "application/json";
您可以在上下文中编写响应,并且可以在成功处理程序中针对ajax命中响应,如下所示:
context.Response.Write(jsonResult)
$.ajax({
type: "POST",
url: "HandlerWithPOST.ashx",
data: $('#' + txtEmail).val(),
dataType:"json",
success: function (data) {
console.log("your data from handler is")
console.log(data ? data.d : null)
}
});
谢谢,Abhishek S.
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.