2014-04-07 33 views
0

這裏是我的索引視圖的一部分:局部視圖,因爲TempData的是空

@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">&times;</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()聲明的視圖。當檢查@if語句時,顯然TempData["SuccessAlert"]總是空。實際上,如果我將@if()聲明更改爲@if(true),它仍然有效,因此TempData在部分視圖中具有正確的值,即使視圖本身爲空也是如此。

任何想法我做錯了什麼? (如果有問題,我使用MVC5。)

+1

if語句中的TempData [「SuccessAlert」]中有一個輸入錯誤(缺少「c」)。 – ataravati

回答

0

Bah!我剛剛意識到我在@if()語句中拼錯了「Success」作爲「Sucess」(一個「C」)。我將在這裏留下來記錄下這樣一個事實,即我是一個白癡,以及別人會發現本課有用的機會 - 仔細檢查TempData和ViewBag鍵的拼寫。

+0

我們都一樣:-) –