2017-05-04 42 views
-1

我在關於我的TempData["Something"]時遇到問題,因爲我想自定義Something的每個內容。下面是我的代碼:TempData不包含任何定義

控制器

[HttpPost] 
    [ValidateAntiForgeryToken] 
    public async Task<IActionResult> SaveLoanContract(ModelLoan lc, string message) 
    { 
     var myList = new ModelLoan(); 
     var countLoan = _Context.LoanContract.Count(c => c.EmployeeId == lc.loanContract.EmployeeId && c.LoanTypeId == lc.loanContract.LoanTypeId); 

      if (ModelState.IsValid) 
      { 

       //Some Logic 
       TempData["SuccessMessage"] = new { CssClassName = "alert-success", Title = "Success!", Message = "You have successfully applied. Please wait for confirmation. Thank you!" }; 

       return RedirectToAction("Index"); 
      } 
    } 

查看:

@if(TempData["SuccessMessage"] != null) 
 
{ 
 
    <div class="alert @TempData["SuccessMessage"].CssClassName"> 
 
     <strong>@TempData["SuccessMessage"].Title</strong> @TempData["SuccessMessage"].Message 
 
    </div> 
 

 
}

但我對某些對象CssClassNameTitle得到一個錯誤, MessageTempData["SuccessMessage"],我不知道爲什麼。我知道有一個小竅門來解決這個問題。有人可以幫我弄這個嗎?謝謝!

+0

在http://stackoverflow.com/questions/15908189找到你的答案 –

+0

1. W你得到的帽子錯誤? 2.你的控制器不應該決定CSS類,因爲這是該視圖的關注點。 3.您的控制器不應該決定向用戶顯示什麼錯誤消息,因爲這是該視圖的關注點。 4.您應該將模型傳遞給您的視圖,然後在您的視圖中決定顯示哪些CSS和消息。 – CodingYoshi

回答

1

你不能匿名類型存儲到TempData,但你可以創建一個類,並在行動

TempData["SuccessMessage"] = new ClsMsg { CssClassName = "alert-success", Title = "Success!", Message = "You have successfully applied. Please wait for confirmation. Thank you!" }; 

,並在視圖轉換tempdata到類像這樣

public class ClsMsg 
{ 
      public string CssClassName { get; set; } 
      public string Title { get; set; } 
      public string Message { get; set; } 

} 

@if (TempData["SuccessMessage"] != null) 
{ 

    ClsMsg msg = TempData["SuccessMessage"] as ClsMsg; 


    <div class="alert @msg.CssClassName"> 
     <strong>@msg.Title</strong> @msg.Message 
    </div> 


} 
相關問題