Jquery ajax调用aspx页面的方法

时间:2011-11-09 10:56:30

标签: .net jquery

我的应用程序上有两个aspx页面。从第一个开始,让我们说default.aspx,我有一个按钮和一个文本框。当我点击按钮时,我会对checkname.aspx进行ajax调用,如下所示

            function docheck() {

            var un = $('#username').val();


            $.ajax({

                url: "checkname.aspx",
                data: { name: un, method: 'checkname' },
                dataType: 'script',
                success: function (val) {

                    if (val == "No")
                        alert("not valid");
                    else
                        alert("valid!");

                }

            });
        }

从checkname.aspx页面我执行如下操作,但它的响应也是将checkname.aspx页面的html添加到响应中,因此ajax调用的成功消息不会成为我想要的。如何发送CheckName方法发送的内容。

checkname.aspx.cs

    protected void Page_Load(object sender, EventArgs e)
    {


  NameValueCollection queries = HttpUtility.ParseQueryString(Request.QueryString.ToString());

    if(queries["method"] == "checkname")
        this.CheckName(queries["name"]);
}

protected void CheckName(string Name)
{
    if (Name == "ryu")
    {
        HttpContext.Current.Response.Write("No");
        return;
    }

    HttpContext.Current.Response.Write("Yes");
}

提前致谢,

2 个答案:

答案 0 :(得分:2)

请注意,这是处理Ajax请求的一种非常笨重的方法,因为该方法与它所在的页面无关。 (在Ajax上下文中,页面的整个控件层次结构都没有意义。)

我建议你考虑使用WCF,参见例如this tutorial

答案 1 :(得分:1)

调用HttpContext.Current.Response.End();来结束处理你的aspx请求,否则,在Page_Load中调用之后的所有内容都会得到正常处理,因此你得到了你所描述的结果。

但总的来说,请遵循其他人提供的建议,并以不同的方式处理您的AJAX请求。