繁体   English   中英

如何从asp.net中的处理程序返回对.aspx页的响应

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

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM