在 ASP.NET MVC6 中访问查询字符串
Accessing querystring in ASP.NET MVC6
我正在尝试访问我的 ASP.NET MVC6 应用程序中的查询字符串参数。但它似乎与 MVC5 和 Web 表单不同,QueryString 没有任何索引器,我不能这样说:
string s = Request.QueryString["key1"] //gives error
所以,我的问题是 - 如何访问 MVC6 中的查询字符串参数?
令人惊讶的是 Request.Forms
集合按预期工作(如在 MVC5 或 Web 表单中)。
谢谢。
So, my question is - how do I access query string parameters in MVC6?
您可以使用 Request.Query
,这是 ASPNET 5 中新增的。
var queryStrings = Request.Query;
我要尝试的 URL 是 - http://localhost:12048/Home/Index?p=123&q=456
您可以使用 -
获取所有密钥
queryStrings.Keys
然后你可以通过迭代键来获取值 -
var qsList = new List<string>();
foreach(var key in queryStrings.Keys)
{
qsList.Add(queryStrings[key]);
}
支持使用索引器获取查询。
在此处查看 MVC 代码测试 - https://github.com/aspnet/Mvc/blob/e0b8532735997c439e11fff68dd342d5af59f05f/test/WebSites/ControllersFromServicesClassLibrary/QueryValueService.cs
context.Request.Query["value"];
另请注意,在 MVC 6 中,您可以使用 [FromQuery] 属性直接从查询建模绑定。
public IActionResult ActionMethod([FromQuery]string key1)
{
...
}
我正在尝试访问我的 ASP.NET MVC6 应用程序中的查询字符串参数。但它似乎与 MVC5 和 Web 表单不同,QueryString 没有任何索引器,我不能这样说:
string s = Request.QueryString["key1"] //gives error
所以,我的问题是 - 如何访问 MVC6 中的查询字符串参数?
令人惊讶的是 Request.Forms
集合按预期工作(如在 MVC5 或 Web 表单中)。
谢谢。
So, my question is - how do I access query string parameters in MVC6?
您可以使用 Request.Query
,这是 ASPNET 5 中新增的。
var queryStrings = Request.Query;
我要尝试的 URL 是 - http://localhost:12048/Home/Index?p=123&q=456
您可以使用 -
queryStrings.Keys
然后你可以通过迭代键来获取值 -
var qsList = new List<string>();
foreach(var key in queryStrings.Keys)
{
qsList.Add(queryStrings[key]);
}
支持使用索引器获取查询。
在此处查看 MVC 代码测试 - https://github.com/aspnet/Mvc/blob/e0b8532735997c439e11fff68dd342d5af59f05f/test/WebSites/ControllersFromServicesClassLibrary/QueryValueService.cs
context.Request.Query["value"];
另请注意,在 MVC 6 中,您可以使用 [FromQuery] 属性直接从查询建模绑定。
public IActionResult ActionMethod([FromQuery]string key1)
{
...
}