当值明显在查询字符串中时,Request.QueryString [“parameter”]不返回任何内容

时间:2013-10-17 19:14:23

标签: c# asp.net webforms query-string

我有一个MVC Umbraco项目,我正在尝试设置一个简单的搜索表单。搜索表单使用基本HTML:

<form methed="GET">
    <input name="s"... />
...

在处理搜索结果的ascx.cs文件中,我有一个执行以下操作的Page_Load方法:

protected void Page_Load(object sender, EventArgs e)
{
    SearchTerm = Request.QueryString["s"];
...

问题是Request.Query始终为空,即使结果网址中明显包含s参数。

有关为什么对于此代码隐藏文件不可见的任何想法?

此外,为了进一步混淆这种情况,Request.RawUrl会返回包含查询字符串的网址。

1 个答案:

答案 0 :(得分:1)

这件事发生在我身上使用umbraco,但结果却不是一个umbraco问题。 RawUrl包含查询字符串,但QueryString没有。

问题是我在查询字符串中传递了一个url而忘记编码它。当在查询字符串中传递的url没有自己的查询字符串时,这实际上没有关系,但是当它发生时,我猜c#看到查询字符串格式错误,因此无法填充QueryString。