В моем контроллере CalculationsController в пост-методе CalculateMenu() формируется список. Также в этом методе я рисую таблицу, представляющую список, и кнопку. Кнопка должна отправлять этот список в другой контроллер. Как это сделать?
Метод CalculateMenu:
[HttpPost]
public async Task<IActionResult> CalculateMenu([FromForm] int[] peopleCount, [FromForm] DateOnly date)
{
StringBuilder resultString = new StringBuilder();
resultString.AppendLine("<style>table, th, td {\n table-layout: fixed; \n border: 1px solid; \n width: 100%; \n border-collapse: collapse; \n}</style>");
resultString.AppendLine("<h1>Ответ:</h1>");
var resultIngredients = await _calculationsService.CalculateIngredients(peopleCount, date);
resultString.Append(CalculateTotalWeightOfEveryIngredient(resultIngredients));
resultString.Append(await CalculatePrice(peopleCount, date));
//Как правильно генерировать кнопку? Что я пробовал:
//resultString.AppendLine($"<form method=\"какой метод использовать?\" action=\"адресс другого контроллера(не знаю как его зднсь задать)">\n <button type=\"submit\"> submit </button>\n</form>");
return Content(resultString.ToString(), "text/html; charset=utf-8");
}
Я попытался отправить post/put запрос в CalculationsController в другой метод, а затем перенаправить на нужный контроллер:
[HttpPost]
[Route("api/calculations/send")]
public ActionResult Send()
{
TempData["mydata"] = "test";
return RedirectToAction("SaveReport", "ReportController");
}
Я попытался преобразовать List в JSON и отправить его в запросе другому контроллеру. Ничего не получилось, в запросе было всего несколько символов:
string serializedIngedientsList = JsonSerializer.Serialize(resultIngredients);
resultString.AppendLine($"<button role=\"button\" class=\"sendBtn\"><a href=\"www.siteadress/api/reports/{serializedIngedientsList}\" style=\"text-decoration: none; color: #000000\"> Отчёт </a></button>");