2012-02-20 28 views
1

我通過AJAX調用.aspx腳本。在該腳本中,我嘗試使用Request.QueryString["i"]從查詢字符串中獲取值,但即使如果我在調試模式下檢查請求對象,查詢字符串IS就一直返回null。訪問Request.QueryString [foo]爲空,但URL顯示查詢字符串/參數正確

怎麼回事&如何從testScript.aspx?i = 199檢索i參數值?

繼承人我簡單的代碼:

public partial class getData : System.Web.UI.Page 
    { 
     protected void Page_Load(object sender, EventArgs e) 
     { 
      short index = System.Convert.ToInt16(Request.QueryString["i"]); // BREAKPOINT 
     } 
    } 

當我使用一個破發點&檢查請求對象,我可以看到Request.QueryString變量是空的(只是{})。 Request.QueryString["i"]爲空。

如果你看看下面的IMG就可以看到形式有我i參數(這就是我的查詢字符串.aspx?i=4

enter image description here

回答

8

您的形式使用POST請求發送,參數i不在QueryString中,而是在使用多部分表單數據格式編碼的請求主體中,Request.QueryString只顯示通過URI傳遞的參數,如page.asax?i = 4 。使用Request.Form["i"]

1

我想你可能會混淆查詢字符串與表單域。在屏幕截圖中,您的值「i」顯然屬於Form屬性。

表單字段是頁面上發佈的字段,而不是顯示在url末尾的查詢字符串項。

如果你看看QueryString屬性,我懷疑你不會找到你的物品。

使用try:

Request.Form["i"] 
0

您好傑克ü使用POST方法,並在POST方法查詢字符串沒有工作,所以我只好用戶要麼得到的方法來使用查詢字符串或如果u使用POST方法然後改變你的代碼testScript.aspx加載事件的Request.QueryString到REQUEST.FORM這樣

public partial class getData : System.Web.UI.Page 
{ 
    protected void Page_Load(object sender, EventArgs e) 
    { 
     short index = System.Convert.ToInt16(Request.Form["i"]); // BREAKPOINT 
    } 
} 
相關問題