【发布时间】:2020-03-17 13:29:44
【问题描述】:
我有一个控制器动作,它使用 TempData 从另一个动作中获取复杂对象。当用户刷新页面并在视图上出现空对象错误时,就会出现此问题。复杂对象不像其他值那样通过 URL 传递。有没有办法防止这种情况发生?另一种解决方案是在页面刷新时从 URL 中删除所有查询参数,并像显示新对象一样显示视图。
控制器
public IActionResult Daily(Daily daily)
{
new ReportDaily().GetAvailableSavedCriteria(out List<ReportCriteria> reportCriteria, out Notification not);
if (daily.SelectedCriteria == null) {
//Create daily report object and initialize the default values
var newModel = new Daily
{
PaymentTypes = DGetPaymentTypes(),
Users = DGetUsers(),
Criteria = reportCriteria,
StartDate = DateTime.Today.Date,
EndDate = DateTime.Today.Date,
County = true,
Municipality = true
};
return View(newModel);
}
else
{
daily.PaymentTypes = TempData.Get<List<Daily.PaymentType>>("PaymentTypes") == null ? DGetPaymentTypes() : TempData.Get<List<Daily.PaymentType>>("PaymentTypes");
daily.Users = TempData.Get<List<Daily.User>>("Users") == null ? DGetUsers() : TempData.Get<List<Daily.User>>("Users");
daily.Criteria = reportCriteria;
return View("Daily", daily);
}
}
【问题讨论】:
标签: c# asp.net-mvc asp.net-core