Доступ к верификации в ASP.NET MVC6
Я пытаюсь получить доступ к параметрам строки запроса в моих приложениях ASP.NET MVC6. Но, похоже, в отличие от MVC5 и веб-форм, QueryString не имеет индексатора, и я не могу сказать что-то вроде:
string s = Request.QueryString["key1"] //gives error
Итак, мой вопрос: как мне получить доступ к параметрам строки запроса в MVC6?
Удивительно Request.Forms
коллекция работает как ожидалось (как в MVC5, так и в веб-формах).
Спасибо.
Ответы
Ответ 1
Доступ к запросу с индексом поддерживается.
См. здесь тест 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)
{
...
}
Ответ 2
Итак, мой вопрос: как мне получить доступ к строкам запроса в MVC6?
Вы можете использовать Request.Query
, который является новым дополнением в ASPNET 5.
var queryStrings = Request.Query;
URL, который я собираюсь попробовать, был - http://localhost:12048/Home/Index?p=123&q=456
И вы можете использовать все клавиши -
queryStrings.Keys
![enter image description here]()
И тогда вы можете получить значения с помощью итерационных клавиш -
var qsList = new List<string>();
foreach(var key in queryStrings.Keys)
{
qsList.Add(queryStrings[key]);
}
![enter image description here]()