Я новичок в MVC. У меня есть индексная страница. Который отображает список элементов для пользователя. Затем пользователь может добавить новый элемент. После того, как пользователь добавил новый элемент, для него загружается файл, содержащий конфиденциальную информацию, которую он добавил.
Все это прекрасно работает, но ....
Моя проблема в том, как теперь перенаправить их обратно на страницу индекса, чтобы обновить список элементов? Это почти как мне нужно перенаправление после загрузки.
Примечание: вставка скачать все отлично работает. Я просто пытаюсь понять, как сделать перенаправление на другую модель после загрузки, чтобы я мог обновить свой список.
Сначала я не могу выполнить перенаправление, поскольку данные, сохраняемые в файл, являются конфиденциальными, поэтому я не хочу никуда их отправлять.
[Authorize]
public async Task<IActionResult> Index(int clientId, string error)
{
// ....... Removed
var model = new SecretIndexModel()
{
Client = clients.Client,
ErrorMessage = error
};
return View(model);
}
На этой странице пользователь может добавить новый элемент.
[Authorize]
[HttpPost]
public async Task<IActionResult> Add(SecretIndexModel model)
{
/// removed ....
return DownloadDocument("results json string");
}
Скачать
public FileResult DownloadDocument(string id)
{
var ms = new MemoryStream(System.Text.Encoding.ASCII.GetBytes("abc"));
return File(ms, System.Net.Mime.MediaTypeNames.Application.Octet, "secret.json");
}
Я ошибаюсь? Я знаю, что мне нужно добавить что-то вроде этого, потому что это работает, если я возвращаю это вместо загрузки.
return RedirectToAction("Index",
new
{
clientId = model.Client.Id,
error = (client.Errors == null)
? string.Empty
: client?.Errors?.FirstOrDefault()?.Message
});
Обновление:
Я могу отправить данные, используя TempData
, но это, похоже, не сильно помогает, тогда я могу обновить страницу индекса, но не загрузить файл.