[英]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.