2016-10-04 68 views
1

在這一刻幾乎每個控制器方法將TempData的返回成功/錯誤消息,這樣的觀點:集中TempData成功/錯誤消息的最佳方法是什麼?

if (result) { 
    TempData["messageSuccess"] = "Some nice success message"; 
} else { 
    TempData["messageError"] = "Some nice error message"; 
} 

我想在一個簡單的方法是調用從任何地方在應用程序的某個地方集中此功能(控制器),那麼將這種集中到可重用的方法的最佳方法是什麼?

回答

1

您可以爲控制器創建擴展。在您的靜態UtilityClass之一中添加下面的方法。

public static void SetTempDataMessages(this Controller controller, bool result) 
    { 
    if (result) 
    { 
     controller.TempData["messageSuccess"] = "Some nice success message"; 
    } 
    else 
    { 
     controller.TempData["messageError"] = "Some nice error message"; 
    } 
    } 

然後在動作方法

public ActionResult Index() 
{ 
    var result = true; 
    this.SetTempDataMessages(result); 
    return View(); 
} 

你可以通過成功和錯誤消息的參數爲好。 (但我個人認爲這是不必要的,你應該將你的TempData保存在你的ActionMethods中)

相關問題