我有一个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
会返回包含查询字符串的网址。
答案 0 :(得分:1)
这件事发生在我身上使用umbraco,但结果却不是一个umbraco问题。 RawUrl包含查询字符串,但QueryString没有。
问题是我在查询字符串中传递了一个url而忘记编码它。当在查询字符串中传递的url没有自己的查询字符串时,这实际上没有关系,但是当它发生时,我猜c#看到查询字符串格式错误,因此无法填充QueryString。