QueryString.Add 不向 ASP.NET Core 中的请求查询字符串添加值
Posted
技术标签:
【中文标题】QueryString.Add 不向 ASP.NET Core 中的请求查询字符串添加值【英文标题】:QueryString.Add not adding value to the Request query strings in ASP.NET Core 【发布时间】:2019-08-02 17:47:39 【问题描述】:我正在编写一个中间件,我想在其中修改当前请求的查询字符串值,但我无法做到这一点。 afaik QueryString.Add
方法应该可以工作,但它不会影响查询字符串。这是我尝试过的。
public async Task Invoke(HttpContext context, IHeaderValue headerValue, IUser user)
var result = context.Request.Headers["Authorization"];
if (result.Count != 0)
headerValue.UserId = this.GetUserIdFromToken(result[0]);
var request = context.Request;
if (request.Method == "GET")
// It should be adding the new query value to the QueryString collection
// but it doesn't
request.QueryString.Add("CurrentUserId", headerValue.UserId.ToString());
我将非常感谢任何帮助。
【问题讨论】:
看QueryString.Add
的返回值
哦,是的!感谢一吨州!!!!我这样做了,它有效。 request.QueryString = request.QueryString.Add("CurrentUserId", headerValue.UserId.ToString());
请将此作为答案发布,以便更多人获得帮助。
【参考方案1】:
QueryString.Add
返回一个包含给定名称和值的新 QueryString
。它不会改变调用它的QueryString
。
所以你需要做类似的事情
request.QueryString = request.QueryString.Add("A", "B");
【讨论】:
以上是关于QueryString.Add 不向 ASP.NET Core 中的请求查询字符串添加值的主要内容,如果未能解决你的问题,请参考以下文章
win7+iis7.5+asp.net下 CS0016: 未能写入输出文件“c:WindowsMicrosoft.NETFrameworkv2.0.50727Temporary ASP.NE