【发布时间】:2020-01-23 15:15:10
【问题描述】:
在一个 ASP.NET MVC 应用程序中,我有一个控制器操作,它调用业务层来添加一个实体。
如果出于业务原因,无法添加实体,则会将 Error 属性与描述一起设置为 true。
如果为真,我为错误消息设置一个TempData 键,然后重定向到一个视图,该视图具有显示存储在TempData 中的错误(如果存在)的代码。有时显示条件块,有时不显示。
这是我控制器中的相关代码
var added = ModelHelper.CreateSessionCode(model);
if(added.Error)
{
TempData["SessionCodesMessage"] = model.ErrorDescription;
TempData["MessageClass"] = "alert-danger";
}
else
{
TempData["SessionCodesMessage"] = "Created session code";
TempData["MessageClass"] = "alert-success";
}
return RedirectToAction("Index");
然后在我看来我有这个代码:
@if (TempData["SessionCodesMessage"] != null)
{
<div class="alert @TempData["MessageClass"] alert-dismissable" style="margin-top: 8px;">
<a href="#" class="close" data-dismiss="alert" aria-label="close">×</a>
@(TempData["SessionCodesMessage"])
</div>
}
而且消息显示与不显示时似乎不一致。这可能是浏览器缓存问题或类似问题吗?通过单步执行代码,我可以确认执行进入两个控制器条件块,具体取决于添加实体的结果。
【问题讨论】:
标签: c# asp.net-mvc tempdata