【问题标题】:Calling controller method from Razor page OnGet从 Razor 页面 OnGet 调用控制器方法
【发布时间】:2020-10-01 05:59:35
【问题描述】:

从 ASP.NET Core 应用程序中的 Razor 页面 OnGet 调用装饰有例如 [HttpGet] 或 [HttpPost] 的控制器方法的最佳实践是什么?

【问题讨论】:

  • 这是同一应用程序中的控制器吗?
  • 是的,很抱歉没有具体说明。控制器在VS中的同一个项目解决方案中。
  • 那为什么要在页面处理方法中调用呢?
  • 想来想去,或许终究没有多大意义。我问的原因是我想从我创建的 API 控制器进行服务器端数据库调用,但我现在了解到 OnGet 页面处理程序方法在服务器上而不是在客户端上运行,因此有没有理由不从 OnGet 方法调用数据库。
  • 我想和你确认一下,你的 api 控制器是否位于另一个项目中?它们只属于同一个解决方案而不是同一个项目?

标签: asp.net-mvc asp.net-core asp.net-web-api razor razor-pages


【解决方案1】:

如果您的 API 控制器和剃须刀页面 OnGet 是同一应用程序的一部分,它们都将在服务器上运行。

所以您不需要进行 API 调用,您可以直接从 OnGet 调用代码

最佳实践是创建一个包含共享代码的服务类,以便两种方法都可以调用它。然后在 API 控制器和 Razor 页面中使用依赖注入来访问 Service 类。

Fundamentals of dependency injection

【讨论】:

    猜你喜欢
    • 2020-05-26
    • 1970-01-01
    • 1970-01-01
    • 2020-10-08
    • 2020-05-04
    • 2021-01-21
    • 2019-12-09
    • 2019-07-01
    • 1970-01-01
    相关资源
    最近更新 更多