我正在使用TempData来存储Register方法中所需的ViewModel。
我的RedirectToAction代码片段-显示将ViewModel添加到TempData
TempData.Put("Email", verificationResponse.Email);
TempData.Put("Phone",verificationResponse.Phone);
RegisterViewModel rvm = new RegisterViewModel
{
PolicyID = vm.PolicyID,
FirstName = vm.FirstName,
LastName = vm.LastName,
DOBMM = vm.DOBMM,
DOBDD = vm.DOBDD,
DOBYYYY = vm.DOBYYYY,
ZipCode = vm.ZipCode,
ReturnUrl = vm.ReturnUrl,
EnableRegister = true,
Email = verificationResponse.Email,
Username = verificationResponse.Email
};
TempData.Put("rvm", rvm);
return RedirectToAction("Register", "Auth");
但当我访问Register中的TempData时,它是空的。
[HttpGet]
public IActionResult Register()
{
RegisterViewModel rvm = TempData.Get<RegisterViewModel>("rvm");
TempData.Keep("rvm");
return View(rvm);
}
确保不要在TempData中存储空字符串!!!您可能认为这只是一个键/值对的问题。不是!整个TempData为null。
我的问题是这行TempData.Put("Email", verificationResponse.Email);
verificationResponse.Email是一个空字符串,它导致Register方法中的TempData为null。
花了太多时间查看这个bug。