Как получить GetAsyn c () с двумя параметрами? - PullRequest
0 голосов
/ 28 мая 2020

У меня есть метод SearchTitleByAuthor, который принимает два параметра, FirstName и LastName и запрашивает базу данных для получения определенного названия книги.

Следующий метод - это * 1006 моего веб-приложения. * TitleController.cs

[HttpPost]
public ActionResult SearchTitleByAuthor(string FirstName, string LastName)
{
    GtlTitle titles;

    try
    {
        HttpResponseMessage response = GlobalVariables_Title_Search_ByAuthor.clientSearch.GetAsync(new { FirstName, LastName }).Result;
        if (response.StatusCode == HttpStatusCode.OK)
        {

            titles = response.Content.ReadAsAsync<GtlTitle>().Result;
            titles.TitleAuthor.FirstName = FirstName;
            titles.TitleAuthor.LastName = LastName;
            return RedirectToAction("TitleSearched", titles);
        }
        else
            return BadRequest(response.Content.ReadAsStringAsync().Result);
    }
    catch
    {
        return View();
    }
    //return View(titles);
}

Как видите, в строке HttpResponseMessage response = GlobalVariables_Title_Search_ByAuthor.clientSearch.GetAsync(new { FirstName, LastName }).Result; я пытаюсь передать два параметра моему методу веб-API, как это выглядит:

[Route("api/title/search/byAuthor/{FirstName}/{LastName}")]
[HttpGet()]
public IActionResult SearchByAuthor(string FirstName, string LastName)

Следовательно, как я могу улучшить способ получения response? Как передать два параметра через метод GetAsync?

EDIT:

[Route("api/title/search/byAuthor/{FirstName}/{LastName}")]
    [HttpGet()]
    public IActionResult SearchByAuthor(string FirstName, string LastName)
    {
        try
        {
            var result = _gtlTitleRepository.SearchByAuthor(FirstName, LastName);
            if (result is null)
            {
                return BadRequest("Author not found");
            }
            else
                return Ok(result);
        }
        catch (Exception e)
        {
            return BadRequest();
        }
    }
...