Запрос ["ключ"] не работает в веб-приложении C# (ASP. NET Core) - PullRequest
0 голосов
/ 29 апреля 2020

Я пытаюсь получить параметр из вида и передать его в контроллер:

 [HttpPost]
 public string GetWord()
 {
     string word = Request["word"];
     return word;
 }

Но я получил ошибку

Индексирование с использованием конструкции [] невозможно используется для выражения запроса Http

Я посмотрел документацию и не знаю, почему она не работает. Что я должен сделать, чтобы это исправить?

Ответы [ 2 ]

0 голосов
/ 29 апреля 2020

Вы можете использовать более конкретное свойство c для получения значения, а не Request ["word"], зависит от того, где находится ключ "word":

  1. В строке запроса -> Request.QueryString["word"];
  2. В ServerVariables -> Request.ServerVariables["word"];
  3. В параметрах -> Request.Params["word"];
  4. В форме -> Request.Form["word"];
  5. В Cookies -> Request.Cookies["word"];
  6. В заголовках -> Request.Headers["word"];

В вашем случае вы можете использовать 4-й: Request.Form["word"], но, пожалуйста, сделайте убедитесь, что элемент управления <input> включен в тег BeginFrom.

0 голосов
/ 29 апреля 2020

Попробуйте связать параметр с формой

 [HttpPost]
 public string GetWord([FromForm]string word)
 {
     var postedWord = word;
     return postedWord;
 }

Поскольку ваша форма усложняется, вам может потребоваться создать класс и привязать отправленную форму к этому

 public string GetWord([FromForm]MyFormModel formData) 
...