Я реализую его, чтобы я мог загрузить файл json как файл опций и сохранить измененные данные, если это будет необходимо.Я следовал за этим ТАКИМ вопросом, и он у меня работает правильно, файл сохраняет, и я успешно получаю триггер для перезагрузки при изменении.Однако, когда я POST
выполняю действие и обновляю информацию и в конце выполняю RedirectToAction("Index")
, кажется, что это не обновляет Transient.После того, как он вернет перенаправление, страница будет в том же состоянии, что и до POST
, однако, когда я вручную нажимаю F5, чтобы обновить страницу, теперь отображаются правильные данные.
Я пробовал такие вещи, как RedirectToAction("Index", "Admin")
и попытался найти временное обновление каждого действия или написать собственное, но не смог найти ничего, что могло бы помочь мне даже начать это делать.
Было бы полезно понять, что такое IWritableOptions
при просмотре ссылкивыше.Единственное, что я изменил, - вместо того, чтобы дать ему раздел, он загружает весь файл.
private readonly IWritableOptions<Settings> settings;
public AdminController(IWritableOptions<Settings> settings)
{
this.settings = settings;
}
public IActionResult Index()
{
// Loading for the first time all is good and settings values are valid
// After being RedirectToAction from the HttpPost the data hasn't updated to the new values.
// If I manually refresh the page all data is correctly set to the new values. (Same if I leave the page and come back)
return View(settings.Value);
}
[HttpPost]
public IActionResult General(SettingsViewModel model)
{
settings.Update(opts =>
{
opts.Value1 = model.Value1 ;
opts.Value2 = model.Value1 ;
});
return RedirectToAction(nameof(Index));
}
Ожидаемые результаты - после RedirectToAction значения параметров теперь устанавливаются в новые значения.Я думаю, что это связано с использованием AddTransient
, когда он обновляется только при полной перезагрузке контроллера, но не на 100% положительно от моего чтения.Я за любую возможность заставить это работать должным образом ...