我的 asp.net 页面将根据用户选择的报告呈现不同的控件,例如,一些报告需要 5 个下拉菜单,一些需要两个复选框和 6 个下拉菜单)。
他们可以使用两种方法选择报告。在SelectedReport=MyReport
查询字符串中,或从下拉列表中选择它。他们通常会在查询字符串中进入带有 SelectedReport 的页面,然后更改下拉列表中选择的报告。
我的问题是,是否有使下拉菜单在选择时修改查询字符串。所以我想SelectedReport=MyNewReport
在查询字符串和页面中回发。
目前它只是做一个正常的回发SelectedReport=MyReport
,即使它不是当前选择的报告,它也会留在查询字符串中。
编辑:而且我还需要保留 ViewState。
我已经尝试Server.Transfer(Request.Path + "?SelectedReport=" + SelectedReport, true)
在下拉列表的事件处理程序中执行此操作,但不幸的是,它是一个 Server.Transfer (以保留 ViewState)而不是一个 Response.Redirect URL 滞后于显示的内容。
也许我在问不可能的事情或者完全错误的方式。
@Craig QueryString 集合是只读的,无法修改。
@Jason那会很棒,除了我会失去 ViewState 不是吗?(对不起,我在看到您的回复后补充了这一点)。