我有两个控制器:OcorrenciasAPIController和IgnicoesAPIController。在我的OcorrenciasAPIController中,我需要从IgnicoesAPIController的GET方法访问数据。 这是我在OcorrenciasAPIController中要做的事情,以从GET方法获取数据:
IgnicoesAPIController controller = null;
controller.GetIgnicoes();
我不确定这是否是正确的方法。我做对了还是有一些问题?如果是这样,还有另一种方法吗?
答案 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);
}
}