C# 从ASP.NET下拉列表重定向

C# 从ASP.NET下拉列表重定向,c#,asp.net,javascript,drop-down-menu,C#,Asp.net,Javascript,Drop Down Menu,处理ASP.Net Dropdownlist用于链接到其他URL的情况的最佳方法是什么 为清晰起见进行了编辑 以下是基本场景: Dropdownlist,绑定了5个城市 选择其中一个城市会将我发送到基于该城市的URL 现在我正在使用“OnSelectedIndexChanged”事件发回,然后处理该事件并重定向到相应的页面 但是,这会导致每个选定城市的服务器点击2次,1次处理回发和重定向,然后另一次呈现实际页面 使用自定义javascript构建URL是我的最佳选择吗?将autopostback

处理ASP.Net Dropdownlist用于链接到其他URL的情况的最佳方法是什么

为清晰起见进行了编辑

以下是基本场景:

Dropdownlist,绑定了5个城市

选择其中一个城市会将我发送到基于该城市的URL

现在我正在使用“OnSelectedIndexChanged”事件发回,然后处理该事件并重定向到相应的页面

但是,这会导致每个选定城市的服务器点击2次,1次处理回发和重定向,然后另一次呈现实际页面


使用自定义javascript构建URL是我的最佳选择吗?

将autopostback设置为false,并将其添加到onchange客户端事件中(假设该值包含整个URL,如果没有,请根据需要进行编辑):


您可以为selection changed事件添加客户端处理程序,然后根据所选值重定向到所需页面:

<asp:DropDownList ID="ddl" runat="server"
  onchange="document.location.href = this.value;" >
    <asp:ListItem Text="a" Value="http://url1"></asp:ListItem>
    <asp:ListItem Text="b" Value="http://url2"></asp:ListItem>
    <asp:ListItem Text="c" Value="http://url3"></asp:ListItem>
    <asp:ListItem Text="d" Value="http://url4"></asp:ListItem>
</asp:DropDownList>

我只是想知道,为什么不通过AJAX获取城市信息(上有几个视频教程)并向用户显示城市信息,而不是创建其他更多页面跳转


这只是一个想法,一个Web2.0想法:)

如果页面很重,并且您关心渲染时间,那么您可以使用ajax渲染查询结果。处理post数据和重定向的服务器命中应该是最小的,不值得在客户端这样做。就个人而言,我会更专注于显示用户第一次想要的数据。

通常,我会同意,但每个页面都需要有一个具体的URL+在点击URL时重新生成页面的其他部分


谢谢你的建议

您能否描述一个场景,以便我们能更好地提供帮助?您不必求助于任何地方,这很酷!非常好,我从未意识到“这个”在那种情况下会起作用。如果您提到从中调用脚本的对象,我会将其写成“document.getElementById('ddl')…”。。。始终使用“this”关键字:)小注释:“javascript:”部分不是必需的,甚至被许多人认为是无用的,特别是如果您已经使用了类似“onchange”的JS事件处理程序。
<asp:DropDownList ID="ddl" runat="server"
  onchange="document.location.href = this.value;" >
    <asp:ListItem Text="a" Value="http://url1"></asp:ListItem>
    <asp:ListItem Text="b" Value="http://url2"></asp:ListItem>
    <asp:ListItem Text="c" Value="http://url3"></asp:ListItem>
    <asp:ListItem Text="d" Value="http://url4"></asp:ListItem>
</asp:DropDownList>