Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 从Razor页面OnGet调用控制器方法_Asp.net Mvc_Asp.net Core_Asp.net Web Api_Razor_Razor Pages - Fatal编程技术网

Asp.net mvc 从Razor页面OnGet调用控制器方法

Asp.net mvc 从Razor页面OnGet调用控制器方法,asp.net-mvc,asp.net-core,asp.net-web-api,razor,razor-pages,Asp.net Mvc,Asp.net Core,Asp.net Web Api,Razor,Razor Pages,从ASP.NET核心应用程序中的Razor页面OnGet调用控制器方法(例如[HttpGet]或[HttpPost])的最佳实践是什么?如果API控制器和Razor页面OnGet是同一应用程序的一部分,它们都将在服务器上运行 因此,您不需要进行API调用,只需直接从OnGet 最佳实践是创建一个包含共享代码的服务类,以便两个方法都可以调用它。然后在API控制器和Razor页面中使用依赖项注入来访问服务类 如果API控制器和razor页面是同一应用程序的一部分,则它们都将在服务器上运行 因此,您不

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

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

因此,您不需要进行API调用,只需直接从
OnGet

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


如果API控制器和razor页面是同一应用程序的一部分,则它们都将在服务器上运行

因此,您不需要进行API调用,只需直接从
OnGet

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


这是同一应用程序中的控制器吗?是的,很抱歉没有指定。控制器在VS中处于同一个项目解决方案中。那么,为什么要在页面处理程序方法中调用它呢?仔细想想,也许它毕竟没有多大意义。我问这个问题的原因是我想从我创建的API控制器进行服务器端数据库调用,但现在我了解到OnGet page handler方法在服务器上运行,而不是在客户端,因此没有理由不从OnGet方法进行数据库调用。我想与您确认,您的api控制器是否位于另一个项目中?它们只属于同一解决方案,但不属于同一项目?这是同一应用程序中的控制器吗?是的,很抱歉没有指定。控制器在VS中处于同一个项目解决方案中。那么,为什么要在页面处理程序方法中调用它呢?仔细想想,也许它毕竟没有多大意义。我问这个问题的原因是我想从我创建的API控制器进行服务器端数据库调用,但现在我了解到OnGet page handler方法在服务器上运行,而不是在客户端,因此没有理由不从OnGet方法进行数据库调用。我想与您确认,您的api控制器是否位于另一个项目中?它们只属于同一个解决方案,而不属于同一个项目?