2011-11-09 71 views
0

我的應用程序有兩個aspx頁面。從第一個,讓我們說default.aspx,我有一個按鈕和一個文本框。當我按一下按鈕我做一個AJAX調用checkname.aspx如下jquery ajax調用一個aspx頁面的方法

  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

嗨。你應該真的考慮使用webservice或asp.net PageMethods來實現這一點。有一篇文章[這裏](http://encosia.com/using-jquery-to-directly-call-aspnet-ajax-page-methods/)關於創建一個PageMethod以及如何使用jQuery來使用它。 –

+0

@DidierG。謝謝你的建議。 –

回答

1

電話HttpContext.Current.Response.End();結束處理您的aspx的要求,否則,在Page_Load中該呼叫畢竟東西被正常處理,所以你已經得到了你所描述的結果。

但一般情況下,請按照其他人在這裏給出的建議,並以不同的方式處理您的AJAX請求。

+0

我能說什麼(謝謝 –

+0

不要說一句話,只要接受;) – Bartosz

2

請注意,這是一種非常笨重的方式來處理Ajax請求,因爲該方法與其所在的頁面無關。 (在Ajax上下文中,頁面的整個控件層次結構是無意義的)。

我建議你看看使用WCF來代替,參見例如。 this tutorial

相關問題