Tempdata ведет себя непоследовательно - иногда хранит последнюю ценность, иногда старую ценность ⇐ C#

Место общения программистов C#
Anonymous
Tempdata ведет себя непоследовательно - иногда хранит последнюю ценность, иногда старую ценность

Сообщение Anonymous »

Я испытываю проблему с Tempdata в моем приложении .NET. Он ведет себя непоследовательно при обработке функциональности поиска. Иногда, после обновления значения и запуска поиска, приложение все еще извлекает старое значение из Tempdata . Большую часть времени он работает, как и ожидалось, но когда я неоднократно проверяю поток, проблема становится более заметной - tempdata начинает удерживать устаревшие значения вместо обновленных.public async Task Search(MyVM.MainVM viewModel)
{
TempData["Search"] = JsonConvert.SerializeObject(viewModel.Search);
return RedirectToAction("Main", new { urlPass = _commonController.Encode("PlaceHolderDummy") });
}

Это код, где tempdata читается:
public async Task Main(string urlPass)
{
// Get current user sign in ID
decimal currentUserId = _UserDataSessions().userId;
string currentUserGroup = _UserDataSessions().userGroup;

// Get list of sales manager
List salesManagerList = await _service.GetSalesManager(currentUserId, currentUserGroup);
List businessUnitList = await _service.GetBusinessUnit();

MyVM.MainVM viewModel = new MyVM.MainVM();

// If user search
if (TempData["Search"] is string re && !String.IsNullOrEmpty(urlPass))
{
TempData.Keep("Search"); // Make sure the data is store after read
var searchInput = JsonConvert.DeserializeObject(re); // Convert re into object

List result = await _service.Search(currentUserId, currentUserGroup, searchInput);
viewModel.DataList = result;
viewModel.Search = searchInput;
}
else
{
GE.Search searchObj = new GE.Search
{
property1 = null,
property2 = null,
property3 = true
};

viewModel.DatasetList = await _salesDashboardService.SearchSalesDashboard(currentUserId, currentUserGroup, searchObj);
viewModel.Search = searchObj;
TempData.Remove("Search");
}

// Set data into view model
viewModel.SalesManagerList = salesManagerList;
viewModel.BusinessUnitList = businessUnitList;
viewModel.SalesCurrentDate = DateTime.Now; // Give current date
viewModel.CurrentUserId = currentUserId;

return View(viewModel);
}


Подробнее здесь: https://stackoverflow.com/questions/796 ... imes-old-v

Вернуться в «C#»