2012-02-20 68 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 
    } 
} 
相关问题