У меня проблема с моим веб-приложением. Мне удалось найти шутки и отобразить те, которые содержат определенное слово (с помощью API https://icanhazdadjoke.com/), но я не знаю, как отобразить их лучше, чем это:
У меня есть asyn c Метод задачи, который ищет шутки:
[HttpPost]
public async Task<List<string>> SearchJoke()
{
string searchedWord = Request.Form["word"];
var client = _httpClientFactory.CreateClient("API Client");
string url = client.BaseAddress + "search?term=" + searchedWord;
string responseBody = await client.GetStringAsync(url);
JokesModel jokes = JsonConvert.DeserializeObject<JokesModel>(responseBody);
List<string> list = new List<string>();
for (int i = 0; i < jokes.Results.Count; i++)
{
list.Add(jokes.Results[i].Joke);
}
return list;
}
И я просто возвращаю View, как это:
public IActionResult Index()
{
return View();
}
Я планирую написать что-то вроде этого:
public IActionResult Index()
{
//check if the word was passed and redirect to the another View which displays jokes
// else show some message that the word is incorrect or there are no jokes contain that word
}
Я попытался проверить, было ли слово передано, и написал другой метод:
[HttpPost]
public bool GetWord()
{
string searchedTerm = Request.Form["word"];
if (searchedTerm != null)
return true;
return false;
}
И сделать что-нибудь как это:
public IActionResult Index()
{
if (GetWord())
{
return RedirectToAction(nameof(HomeController.SearchJoke), "Home");
//this is the page where I display joke in more readable way
}
return View();
}
Но я получил ошибку: «System.InvalidOperationException:« Неверный тип содержимого: », когда я хочу загрузить слово в метод GetWord ().
Кто угодно может дайте мне какой-нибудь совет или поможете мне с этой проблемой?