我通过AJAX调用.aspx脚本。在该脚本中,我试图使用Request.QueryString["i"]
从查询字符串中获取值,但它总是返回null,即使我在调试模式下检查Request对象,查询字符串 IS right那里。
出了什么问题&如何从testScript.aspx中检索i
参数值?i = 199?
这是我的简单代码:
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
答案 0 :(得分:8)
您的表单是使用 POST 请求发送的,参数 i 不在QueryString中,但在使用多部分表单数据格式的请求正文编码中,Request.QueryString
仅显示通过URI传递的参数,如page.asax?i = 4。使用Request.Form["i"]
答案 1 :(得分:1)
我认为您可能会将查询字符串与表单字段混淆。在屏幕截图中,您的值“i”显然位于Form
属性。
表单字段是页面上的POSTed字段,而不是显示在url末尾的查询字符串项。
如果你看QueryString
财产,我怀疑你找不到你的物品。
尝试使用:
Request.Form["i"]
答案 2 :(得分:0)
你好Jake你用post方法,并且在post方法查询字符串不起作用,所以你必须使用get方法来使用查询字符串或者如果你使用post方法然后在testScript.aspx load event中更改你的代码< strong> Request.QueryString to 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
}
}