c# - 在与 ASP.Net 中的搜索控件相同的页面上显示搜索结果的最佳方式

标签 c# .net asp.net controls postback

我在一个页面上有两个控件,一个是搜索入口和提交控件,另一个是搜索结果控件,由于网站的布局,它们必须分开。我正在研究让搜索控件提交在结果控件中显示搜索结果的不同方式,最初我不关心回发,我更关心两件事

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/

相关文章:

javascript - 默认情况下在 html 文本框内仅显示小数点后 4 位数字的简单方法是什么

c#保存文件目录

c# - 在 Entity Framework 6 中使用 SqlQuery<Dictionary<string, string>>

c# - 创建单文件和多文件程序集的步骤?

c# - 将 System.DirectoryServices.AccountManagement.PrincipalContext.ValidateCredentials 与 SAM 一起使用时出现奇怪错误

c# - 如何在运行时向 TypeDescriptor 添加属性级属性?

c# - 导入的 system.web,我没有看到 server.mapPath?

java - 使用 JAX-WS 使用 ASP.net Web 服务,获取 "The specified type is abstract"

javascript - 通过后端c#在javascript文件中设置数据

c# - WPF 在任务栏上最小化单击