如何从asp.net核心Web应用程序向自身发出请求

时间:2018-08-05 15:46:29

标签: c# asp.net .net asp.net-web-api

让我们假设我有一堆控制器来渲染文本部分。可通过浏览器的URL访问它们。但是其中一些只是其他人的组成。我想要的是索取几个文本并将其合并。为什么?

  • 它们是构造所需的时间,但很可能已经被缓存
  • 不要发明自己的缓存并使用ASP.NET

也许我可以System.Net.WebClient.DownloadString("https://myserver/path"),但是效率低下。


@derloopkat在下面请我询问代码示例

[ApiController]
[Route("foo")]
public abstract class FooController: ControllerBase
{   
   [HttpGet]
   public string Get()
   {
     return "foo";
   }
}

[ApiController]
[Route("bar")]
public abstract class BarController: ControllerBase
{   
   [HttpGet]
   public string Get()
   {
      return "bar";
   }
}

[ApiController]
[Route("bar_plus_foo")]
public abstract class CompositeController: ControllerBase
{   
   [HttpGet]
   public string Get()
   {
      // TODO: how to fetch result of FooController and BarController 
      // to return concatenation?       
   }
}

1 个答案:

答案 0 :(得分:0)

我们通常不像这样在控制器中编写业务逻辑。 您可以创建服务,并在该服务中隐藏业务逻辑。代码是这样的:

this.http.post(this.url, data, token)
  .then(data => {
    var response = JSON.parse(data.data);  
    console.log(response)
  })

例如,您可以搜索洋葱架构并在github中查看示例 顺便说一句,不要使控制器抽象。 希望对您有帮助