Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从所有控制器调用方法_C# - Fatal编程技术网

C# 从所有控制器调用方法

C# 从所有控制器调用方法,c#,C#,此方法检查状态,并在此基础上返回200或400状态代码 private IActionResult ResponseType(Response response) { if (response.Status) return Ok(response); return BadRequest(response); } 我想从所有控制器调用此方法,以便确定是否应返回200或400。我应该在哪里声明此方法?在“通用”控制器、服务等中

此方法检查
状态
,并在此基础上返回
200
400
状态代码

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

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

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

在任何其他控制器中,继承自此
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);
    }
}
所有其他控制器

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);
    }
}

你想去哪里就去哪里。我把它放在一个抽象的基本控制器中。你可以把
BaseController
抽象化。