从所有控制器调用方法

时间:2018-09-20 13:47:39

标签: c#

此方法检查Status,并基于此方法返回200400状态码。

private IActionResult ResponseType(Response response)
    {
        if (response.Status)
            return Ok(response);
        return BadRequest(response);
    }

我想从所有控制器调用此方法,因此可以确定是否应该返回200400。我应该在哪里声明此方法?在“通用”控制器,服务等中?此用例的最佳做法是什么?

1 个答案:

答案 0 :(得分:5)

在您的项目中创建从BaseController继承的System.Web.Mvc.Controller,并在此处编写所有通用属性,方法和通用逻辑。

在任何其他控制器中,都从此BaseController

继承

BaseController

public abstract class BaseController : Controller
{
  public IActionResult ResponseType(Response response)
  {
    if (response.Status)
        return Ok(response);

    return BadRequest(response);
  }

  //Any other common methods, logics here
}

所有其他控制器

public class AnyController : BaseController
{
    public ActionResult GetResponseType(Response response)
    {
        return ResponseType(response);
    }
}