Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/308.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# ASP.Net核心Web API应用程序:如何从所有操作方法返回成功,而不以特定模式运行代码?_C#_Asp.net Mvc_Asp.net Core - Fatal编程技术网

C# ASP.Net核心Web API应用程序:如何从所有操作方法返回成功,而不以特定模式运行代码?

C# ASP.Net核心Web API应用程序:如何从所有操作方法返回成功,而不以特定模式运行代码?,c#,asp.net-mvc,asp.net-core,C#,Asp.net Mvc,Asp.net Core,我正在以各种模式配置服务器,并从配置文件中设置应用程序的模式。 所以,假设我在模式“X”下运行HTTP服务器,我希望客户端在到达有效端点时获得“HTTP状态200,不执行任何逻辑”。 如果服务器处于模式“Y”,则所有端点都应执行逻辑并根据请求处理返回状态 [Route("api/todo")] public class TodoController : Controller{ //if in mode "Y" [HttpGet("{id}", Name = "G

我正在以各种模式配置服务器,并从配置文件中设置应用程序的模式。 所以,假设我在模式“X”下运行HTTP服务器,我希望客户端在到达有效端点时获得“HTTP状态200,不执行任何逻辑”。 如果服务器处于模式“Y”,则所有端点都应执行逻辑并根据请求处理返回状态

[Route("api/todo")]
public class TodoController : Controller{

        //if in mode "Y"
        [HttpGet("{id}", Name = "GetTodo")]
        public IActionResult GetById(long id)
        {
            var item = _todoRepository.Find(id);
            if (item == null)
            {
                return NotFound();
            }
            return new ObjectResult(item);
        }

       //if in mode "X"
       [HttpGet("{id}", Name = "GetTodo")]
       public IActionResult GetById(long id){
         return Ok();
       }

}
是否有一种使用过滤器的方法可以在不进入action方法的情况下将OK返回给客户端

编辑:
当我说模式时,我的意思是像“生产”、“测试”、“分期”这样的模式。 [就像所有这些模式都有不同的db连接字符串]
因此,我有一个名为“X”的模式[如果我的服务器在“X”模式下运行],任何点击我公开的端点的客户端都将获得成功。

是的,您可以通过使用验证来实现这一点。在模式X或模式Y下运行HTTP服务器,我不能完全理解您的意思,因此您需要调整代码

例如,请看下图:


您需要在图中实现类似“授权中间件”的东西。在if进入控制器(Startup.cs中的app.UseMvc())之前,您只需要使用HTTP 200 OK返回请求。

您能更清楚地理解模式是什么意思吗?当我说模式时,我指的是“生产”、“测试”、“暂存”等模式。[就像所有这些模式都有不同的db连接字符串]因此,我有一个名为“X”的模式[如果我的服务器运行在模式“X”上],任何点击我公开的端点的客户端都将获得成功。你在哪里配置它?我将从配置文件中读取一个变量,它将告诉我当前模式。类似于:string mode=ConfigurationManager.AppSettings[mode];这可能会有所帮助:我正在尝试使用中间件,如果有疑问,我会回来。