我有一个QueryString名为'flagEdit',我想在获取它的值后将其删除.但是,当我尝试使用它删除它
Request.QueryString.Clear();
Run Code Online (Sandbox Code Playgroud)
要么
Request.QueryString.Remove("editFlag");
Run Code Online (Sandbox Code Playgroud)
发生此错误 -
System.NotSupportedException:Collection是只读的.
所以,我想知道如何在获取它的值后删除查询字符串
Ama*_*ian 42
Request.QueryString.Remove("editFlag")
Run Code Online (Sandbox Code Playgroud)
如果您执行上述操作,则会出现错误
集合是只读的.
因此,我们需要在删除查询字符串之前编写以下代码.
试试这种方式
PropertyInfo isreadonly =
typeof(System.Collections.Specialized.NameValueCollection).GetProperty(
"IsReadOnly", BindingFlags.Instance | BindingFlags.NonPublic);
// make collection editable
isreadonly.SetValue(this.Request.QueryString, false, null);
// remove
this.Request.QueryString.Remove("editFlag");
Run Code Online (Sandbox Code Playgroud)
你也可以这样试试
var nvc = HttpUtility.ParseQueryString(Request.Url.Query);
nvc.Remove("editFlag");
string url = Request.Url.AbsolutePath + "?" + nvc.ToString();
Response.Redirect(url);
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助
如果您想清除全部QueryString,这对我有用:
Response.Redirect(Request.RawUrl.Replace(Request.Url.Query, ""));
Run Code Online (Sandbox Code Playgroud)
我正在清除一个表单,该表单的某些字段由填充QueryString,因此想对整个内容进行修改。
但是,如果您针对特定的参数并希望保留其余参数,那么其他人的答案可能会更好。
| 归档时间: |
|
| 查看次数: |
65085 次 |
| 最近记录: |