在我问这个问题之前,我甚至不知道我使用的是一个查询字符串(我对此如此无知,我有什么是其他一些令人困惑的StackOverFlow研究的结果)。这是一个参数,我通过超链接表达式从我的SSRS报告查看器传递给我的应用程序。它的工作原理和一切都很好,除非我想在之后从url中清除它。我想清除我的查询字符串后,使用它在页面加载c#
http://10.155.54.101/Update?CurrencyId=67
而我正在页面加载时获取带有此逻辑的参数。
if (Request.Params["CurrencyId"] != null)
int CurrencyId = int.parse(Request.Params["CurrencyId"]);
我成功地捕捉信息和填充asp.net控制它,但我想它提交更新后徘徊,从地址栏清除它现在(回传?)。
通过另一个堆栈溢出答案:Clear QueryString on PostBack,我试图通过下面的代码清除查询字符串。
Request.Params.Clear();
但我得到一个集合是只读的错误,这是在上面的堆栈溢出问题。所以我尝试使用System.Reflection以下面的代码更改集合的只读属性。
PropertyInfo Isreadonly = typeof(System.Collections.Specialized.NameValueCollection).GetProperty("IsReadOnly", BindingFlags.Instance | BindingFlags.NonPublic);
Isreadonly.SetValue(Request.Params, false, null);
Request.Params.Clear();
我不明白的错误,但没有被删除,所以我可能不会被正确引用,因为然而到底Request.Params作品的查询字符串。
有人可以用这个方向将我推向正确的方向吗?我很抱歉,我对此一无所知。
你有一个特别的原因,为什么querystring是不可接受的?无论哪种方式都有很多有效的理由。只是好奇,它也可能指导这里的答案。 – secretwep
我要完全诚实,我正在尝试排除一个我并没有真正理解的错误。我有一个更新页面的应用程序,更新我的数据库中的记录,它检索并更新记录就好了。我有一个SSRS报告,每条记录上都有一个超链接,可以进入我的更新页面,并使用记录的数据填充字段和下拉列表。但是,数据完全取决于准确性(尤其是对于多对多关系)。更新也不会发布。我读过其他帖子,查询字符串与他们的问题有关。 – David
请原谅我,你的意思是“拉起_incompletely_”吗?有时查询字符串是从一个应用程序获取数据到另一个应用程序的唯一方式,并且这是一个GET操作。不过,我怀疑这个问题在别处。你有两个应用程序或只有一个控制。您的问题中的更多细节可能会帮助您获得答案。 – secretwep