以下是我的索引视图的一部分:
@if (TempData["SucessAlert"] != null)
{
Html.RenderPartial("~/Views/Shared/_SuccessAlert.cshtml");
}
这是部分视图,_SuccessAlert.cshtml:
<div class="alert alert-success alert-dismissable">
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>
@TempData["SuccessAlert"]
<a href="@TempData["SuccessAlertLink"]" class="alert-link">@TempData["SuccessAlertLinkText"]</a>
</div>
这是我的控制器的一部分:
TempData["SuccessAlert"] = "Successfully created account code " + mergedCode + ".";
TempData["SuccessAlertLinkText"] = "Click here to view it.";
TempData["SuccessAlertLink"] = "/AccountCode/Details?Division=" + viewModel.Division
+ "&ProgramCode=" + viewModel.ProgramCode
+ "&ProjectCode=" + viewModel.ProjectCode
+ "&includeDisabled=False&page=1";
return RedirectToAction("Index");
在将@if()
语句添加到视图之前,一切正常。选中此TempData["SuccessAlert"]
语句时,显然@if
始终为null。实际上,如果我将@if()
语句更改为@if(true)
,它仍然有效,因此TempData
在局部视图中具有正确的值,即使它在视图中是空的。
知道我做错了什么吗? (如果重要的话,我正在使用MVC5。)
答案 0 :(得分:1)
呸!我刚刚意识到我拼错了#34;成功&#34;作为&#34;成功&#34; (1&#34; C&#34;)在@if()语句中。我要留下这个来记录我是一个白痴的事实,以及其他人发现本课有用的机会 - 仔细检查TempData和ViewBag键的拼写。