如何在asp.net中从Handler返回对.aspx页面的响应

时间:2013-11-08 07:12:03

标签: c# jquery asp.net ajax handler

我刚刚开始在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,例如?

3 个答案:

答案 0 :(得分:0)

你可以像这样扩展你的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/

答案 1 :(得分:0)

将数据写入响应尝试

context.Response.Write(jsonResult)

也在写集之前

context.Response.ContentType = "application/json";

答案 2 :(得分:0)

你可以在上下文中编写响应,它将在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。