如何通过另一个控制器从GET方法访问数据?

时间:2020-08-18 15:56:10

标签: asp.net-mvc asp.net-core

我有两个控制器:OcorrenciasAPIController和IgnicoesAPIController。在我的OcorrenciasAPIController中,我需要从IgnicoesAPIController的GET方法访问数据。 这是我在OcorrenciasAPIController中要做的事情,以从GET方法获取数据:

             IgnicoesAPIController controller = null;
            controller.GetIgnicoes();

我不确定这是否是正确的方法。我做对了还是有一些问题?如果是这样,还有另一种方法吗?

2 个答案:

答案 0 :(得分:0)

如果您的控制器中有一个通用方法,那么两个控制器都需要一个通用类,首先,您需要一个通用的基本控制器

public class BaseController:ApiController
{
    public void CommonMethod()
    {
       
    }
}

然后从您的控制器继承

public class ApiControllerA : BaseController
{
    public void MethodA()
    {
        base.CommonMethod();
    }
} 

还有第二个控制器

public class ApiControllerB : BaseController
{
    public void MethodB()
    {
        base.CommonMethod();
    }
} 

现在将您的get方法中的内容放入普通方法中,以便在两个控制器中均可访问

答案 1 :(得分:0)

这是一个演示,它使用另一个控制器的方法进行显示:

Startup.cs:

 public void ConfigureServices(IServiceCollection services)
        {
            services.AddTransient<AController,AController>();
            ...
        }

控制器:

public class AController : Controller
    {
        public IActionResult Index()
        {
            return View();
        }
        public string ReturnResult() {
            return "success";
        }
    }

B控制器:

public class BController : Controller
    {
        private AController aController;
        public BController(AController a) {
            aController = a;
        }
        public IActionResult Index()
        {
            var s = aController.ReturnResult();
            return Ok(s);
        }
    }

结果: enter image description here

相关问题