如何解决如何通过另一个控制器从GET方法访问数据?
我有两个控制器:OcorrenciasAPIController和IgnicoesAPIController。在我的OcorrenciasAPIController中,我需要从IgnicoesAPIController的GET方法访问数据。 这是我在OcorrenciasAPIController中要做的事情,以从GET方法获取数据:
IgnicoesAPIController controller = null;
controller.GetIgnicoes();
我不确定这是否是正确的方法。我做对了还是有一些问题?如果是这样,还有另一种方法吗?
解决方法
如果您的控制器中有一个通用方法,那么两个控制器都需要一个通用类,首先,您需要一个通用的基本控制器
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方法中的内容放入普通方法中,以便在两个控制器中均可访问
,这是一个演示,它使用另一个控制器的方法进行显示:
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);
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。