2016-10-04 4 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)