У меня есть проблема, и я искал документы, чтобы увидеть, возможно, я допустил ошибку или что-то еще, но не нашел ответ, который искал.Моя проблема заключается в следующем: после сохранения продукта я использую шаблон PRG (Post-Redirect-Get), чтобы пользователь не повторно отправлял форму при нажатии кнопки возврата браузера.Я отображаю одноразовое сообщение, используя TempData, поскольку оно сохраняет данные для следующего запроса перед удалением.Этот метод отлично работает в моей среде разработки.Но после развертывания приложения на производственном сервере, хотя методы действия следуют шаблону PRG и успешно возвращаются, TempData не сохраняется и сообщение не отображается.
Вот как я отображаю сообщение:
@if (TempData["Message"] != null)
{
var message = JsonConvert.DeserializeObject<MessageModel>(TempData["Message"].ToString());
<div class="alert bg-@message.Class text-center alert-dismissible fade show fixed-bottom w-100" role="alert" style="margin:0">
<h6 class="text-white">@message.Message</h6>
<button type="button" class="close" data-dismiss="alert" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
}
Вот пример метода:
[HttpPost]
[ValidateAntiForgeryToken]
public async Task<IActionResult> Edit(Product model)
{
if (!ModelState.IsValid)
{
return View(model);
}
var product = await _productRepository.GetProductAsync(model.ID);
product.Name = model.Name; product.ProductCode = model.ProductCode; product.Category = model.Category;
product.Description = model.Description;
await _productRepository.UpdateAsync(product);
TempData["Message"] = JsonConvert.SerializeObject(new MessageModel { Class = "success", Message = "Product has been successfully updated" });
return RedirectToAction("Edit", new { id = model.ID });
}
Любая помощь будет оценена.Спасибо!