asp.net – 更改单个URL查询字符串值
|
我有一个ASP.NET页面,它在查询字符串中需要一些参数: search.aspx?q=123&source=WebSearch 这将显示搜索结果的第一页。现在在该页面的呈现中,我想显示一组链接,允许用户跳转到搜索结果中的不同页面。我可以通过追加& page = 1或& page = 2等来做到这一点。 它变得复杂的是,我想保留原始页面中的输入查询字符串,除了我想要更改的每个参数。在其他组件使用的url中可能还有其他参数,我试图替换的值可能已经被定义了,也可能不会被定义: search.aspx?q=123&source=WebSearch&page=1&Theme=Blue 在这种情况下,要生成到下一页结果的链接,我想将page = 1更改为page = 2,而其余的查询字符串不变。 有没有内建的方法来做到这一点,还是需要手动执行所有的字符串解析/重组? 解决方法您不能直接修改 QueryString,因为它是唯读的。您将需要获取值,修改它们,然后将它们放在一起。尝试这个:var nameValues = HttpUtility.ParseQueryString(Request.QueryString.ToString());
nameValues.Set("page","2");
string url = Request.Url.AbsolutePath;
string updatedQueryString = "?" + nameValues.ToString();
Response.Redirect(url + updatedQueryString);
或者,您可以使用索引器添加新密钥或修改现有密钥: nameValues["temp"] = "hello!"; // add "temp" if it didn't exist
nameValues["temp"] = "hello,world!"; // overwrite "temp"
nameValues.Remove("temp"); // can't remove via indexer
您可能需要添加一个使用System.Collections.Specialized;以使用NameValueCollection类。 (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc – 一种在MVC环境中处理返回URL的智能方法
- asp.net-mvc – TinyURL喜欢使用ASP.NET MVC进行路由吗?
- asp.net-mvc – 如何使用activedirectorymembershipprovide
- VS 2015 Update 2 – 调试时不存在变量,为什么?
- asp.net – Linq更新查询生成哪里0 = 1?
- asp.net-mvc – ASP.NET MVC – Html.Textbox()throws“对象
- asp.net-mvc – asp.net mvc – 子文件夹
- 如何使用MSBuild发布Asp.NET Web应用程序?
- asp.net-mvc-3 – 依赖注入与多个类实现的接口
- asp.net – HTML divs可以在浏览器窗口之外?
- asp.net – 自定义Web字体在IE9中不起作用
- asp.net – 从类型’DBNull’到类型’String’的
- asp.net-mvc – xVal和ASP.Net MVC 2 AddModelSt
- asp.net-mvc-2 – 使用ASP.NET MVC 2时更好地保留
- asp.net-mvc-3 – 如何使用Asp.Net MVC 3和Razor
- 对asp.net网站进行基准测试,我可以使用jmeter吗?
- asp.net-mvc – 如何使用MVC3 Razor布局页面?
- asp.net-core-mvc – 在EF7中加载引用
- 如何保护我的ASP.NET AJAX应用程序?
- asp.net – 如何在EF Core中向Identity用户添加外
