处理您有一个用于链接到另一个 URL 的 ASP.Net 下拉列表的情况的最佳方法是什么
为清楚起见进行了编辑
这是基本场景:
绑定了 5 个城市的下拉列表
选择其中一个城市应将我发送到基于城市的 URL
现在我正在使用“OnSelectedIndexChanged”事件发回,然后处理该事件并重定向到相应的页面。
但是,这会导致每个选定城市对服务器进行 2 次点击,1 次用于处理回发和重定向,然后另一次用于呈现实际页面。
使用自定义 javascript 构建 URL 是我的最佳选择吗?
处理您有一个用于链接到另一个 URL 的 ASP.Net 下拉列表的情况的最佳方法是什么
为清楚起见进行了编辑
这是基本场景:
绑定了 5 个城市的下拉列表
选择其中一个城市应将我发送到基于城市的 URL
现在我正在使用“OnSelectedIndexChanged”事件发回,然后处理该事件并重定向到相应的页面。
但是,这会导致每个选定城市对服务器进行 2 次点击,1 次用于处理回发和重定向,然后另一次用于呈现实际页面。
使用自定义 javascript 构建 URL 是我的最佳选择吗?
您可以为选择更改事件添加客户端处理程序,然后根据所选值重定向到所需页面:
<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>
将 autopostback 设置为 false,并将其添加到 onchange 客户端事件(假设该值具有整个 URL,如果没有,则根据需要进行编辑):
window.navigate(this.options[this.selectedIndex].value);
我只是想知道,为什么不通过 AJAX 获取城市信息( www.asp.net/learn上有几个视频教程)并向用户显示城市信息而不是创建其他更多页面跳转?
这只是一个想法,一个 Web 2.0 的想法 :)
如果页面很重并且您担心呈现时间,则可以使用 ajax 来呈现查询结果。服务器命中来处理发布数据和重定向应该是最小的,不值得在客户端这样做。就个人而言,我会更专注于第一次显示用户想要的数据。
通常,我会同意,但是每个页面都需要有一个具体的 URL + 在点击 URL 时重新生成页面的其他部分。
不过感谢您的建议!