次のようなアクションがあります。
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult New(Product product)
{
try
{
if(ModelState.IsValid)
{
_productService.Create(product);
TempData["success"] = "Product created successfully!";
return RedirectToAction("Edit", new { product.Id });
}
}
catch (Exception e)
{
Logger.Exception(e);
TempData["error"] = "Oops, an error occurred! Please try again in a few moments.";
}
return View(product);
}
このエラー処理ロジックをメソッドから取り出したいと思います。ただし、デフォルトの [HandleError] の方法ではなく、エラーの場合にユーザーを別のビューにリダイレクトする代わりに、TempData["error"] で同じビューを返し、通知が同ページのトップ。
この try{}catch{} コードをすべて削除し、このロジックをこのアクションの外に置き、他のアクションについても同様にするにはどうすればよいでしょうか?