У меня есть следующее действие, которое получает модель Вопроса из моего API, учитывая заголовок Вопроса из ввода автозаполнения.Действие отлично работает с заголовками, которые не содержат вопросительный знак (например, сколько вам лет).Но если я дам название, содержащее знак вопроса (например, сколько вам лет?), Модель не будет возвращена, поскольку знак вопроса удаляется в процессе.
Я пытался HttpUtility.UrlDecode()
метод, но безудачи.
Ниже вы можете найти мои запросы
[HttpGet]
public async Task<IActionResult> GetQuestionAsync(string question) {
Questions q = new Questions();
HttpClient client = _api.Initial();
HttpResponseMessage res = await client.GetAsync("api/Search/" + question);
if (res.IsSuccessStatusCode) {
var result = res.Content.ReadAsStringAsync().Result;
q = JsonConvert.DeserializeObject<Questions>(result);
}
return View(q);
}
[Produces("application/json")]
[HttpGet]
[Route("{keyword}")]
public async Task<IActionResult> GetByString([FromRoute(Name = "keyword")] string keyword) {
if (!ModelState.IsValid) {
return BadRequest(ModelState);
}
var question = await _context.Questions
.SingleOrDefaultAsync(m => m.Question == HttpUtility
.UrlDecode(keyword.ToString()));
if (question == null) {
return NotFound();
}
return Ok(question);
}
Я ожидаю, что смогу получить вопросы, включая ?
, из моего API.Есть ли способ достичь этого?
Обратите внимание, что в Swagger запрос API Get работает нормально!