0

我有一个 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始终是空的,即使生成的 URLs中清楚地包含参数。

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

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

4

1 回答 1

1

这发生在我使用 umbraco 时,但结果不是 umbraco 问题。RawUrl 包含查询字符串,但 QueryString 没有。

问题是我在查询字符串中传递了一个 url,却忘记了对其进行编码。当在查询字符串中传递的 url 没有自己的查询字符串时,这实际上并不重要,但是当它这样做时,我猜 c# 将查询字符串视为格式错误,因此无法填充 QueryString。

于 2013-11-22T11:33:28.400 回答