2013-02-22 82 views
0

我想在asp.net mvc中顯示消息。爲此,我創建了一個局部視圖。此部分視圖的名稱是_feedback。在這部分視圖的主體中,我編寫了這些代碼。使用TempData在MVC中顯示消息

@model MyProject.SharedTools.OperationStatus 

@if (Model != null) 
{ 
    if (Model.IsSuccess) 
    { 
     @:Model.Message; 
    } 
    else 
    { 
     @:Model.Message; 
    } 
} 

我把這個代碼_layout文件:

@Html.Partial("_feedback") 

,當我希望看到來自控制器的消息,使用此代碼:

operationStatus = _provinceRepository.Save(); 
if (operationStatus.IsSuccess) 
{ 
    TempData["OperationStatus"] = operationStatus; 
    return RedirectToAction("Index"); 
} 

,但我給這個錯誤:

傳遞到詞典中的模型項的類型爲「MyProject.Models.Prov inceModel',但是這個字典需要一個'MyProject.SharedTools.OperationStatus'類型的模型項。

+0

您在View中定義OperationStatus模型,但在控制器中您嘗試傳遞ProvinceModel模型。 – 2013-02-22 09:10:40

回答

1

確保你通過你的部分期待的正確型號:

@Html.Partial("_feedback", Model.SomePropertyOfTypeOperationStatus) 

如果不指定模型作爲第二個參數Html.Partial幫手,那麼它會自動傳遞模型當前的視圖(在你的情況下是MyProject.Models.ProvinceModel),這就是爲什麼你會得到這個錯誤:你的部分需要一個MyProject.SharedTools.OperationStatus類型的模型。

也是您使用的是您存儲在裏面的部分控制器的TempData的值是不太清楚。也許這應該是這樣的:

@model MyProject.SharedTools.OperationStatus 

@if (Model != null) 
{ 
    @TempData["OperationStatus"] 
} 

或沒有你剛纔的意思是直接顯示在不使用模型,你保存在TempData的在局部的價值?

@TempData["OperationStatus"]