我在一个页面上有两个控件,一个是搜索入口和提交控件,另一个是搜索结果控件,由于网站的布局,它们必须分开。我正在研究让搜索控件提交在结果控件中显示搜索结果的不同方式,最初我不关心回发,我更关心两件事
1) 如何将选定的搜索词返回到同一页面(或者实际上是显示结果的控件)QUerystring、hiddenfield、session、viewstate(有效隐藏字段)?
2) 我实际上如何让页面提交给自己。
抱歉,如果这有点基础但我不是 ASP.Net 专家
最佳答案
有很多方法可以满足您的要求,老实说,我不确定是否有正确的答案。这完全取决于您的开发风格和您要解决的问题。
我在编写搜索界面方面有相当多的经验,在我看来,使用查询字符串是传递搜索条件的好方法。然而,这有其优点和缺点。
优点:
只需传递查询字符串,您就可以从站点或外部站点的任何位置访问搜索结果页面。
您的搜索结果很容易被抓取,因为它们只是您网站上的页面。
查询字符串使用起来相当简单。
用户可以在查询字符串中看到他们正在搜索的内容。 (然而,这可能是一件坏事,具体取决于其用途。)
用户可以标记他们的搜索结果(感谢 Fredrik Mörk)
缺点:
您可能需要花时间让您的搜索条件看起来更漂亮。 IE。您是否希望您的用户只看到一个对他们毫无意义的 ID?
您可能在对搜索条件进行 html 编码时遇到问题,因为它们需要作为查询字符串参数传递。编码可以很容易地完成,但如果您将保留字符用于其他用途,它可能会让您头疼。
您的用户可以看到他们正在搜索的内容。 (就像我说的,这可能是好事也可能是坏事。)
您的查询字符串可能变得太长。
可能还有其他一些我没有想到的事情,但它给了你一个想法。
至于再次将页面发布回自身,有几种方法可以做到这一点,但请尝试使用提交按钮或带有 # 符号作为 href 属性的 anchor 标记。
要考虑的另一件事可能是使用 url 重写器使丑陋的查询字符串成为漂亮的 URL。
例如:
used_car_search.aspx?make=ford&model=focus
可能变成:
used_ford_focus.html
快乐编码:)
关于c# - 在与 ASP.Net 中的搜索控件相同的页面上显示搜索结果的最佳方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/839365/