Подтвердить что ты не робот

Доступ к верификации в ASP.NET MVC6

Я пытаюсь получить доступ к параметрам строки запроса в моих приложениях ASP.NET MVC6. Но, похоже, в отличие от MVC5 и веб-форм, QueryString не имеет индексатора, и я не могу сказать что-то вроде:

string s = Request.QueryString["key1"] //gives error

Итак, мой вопрос: как мне получить доступ к параметрам строки запроса в MVC6?

Удивительно Request.Forms коллекция работает как ожидалось (как в MVC5, так и в веб-формах).

Спасибо.

4b9b3361

Ответ 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