使用Razor从ASP.Net Core 2 Web App调用Web API

时间:2018-07-23 08:55:56

标签: asp.net-web-api razor asp.net-core asp.net-core-2.1

我已经对此主题进行了大量研究,但似乎找不到答案。

我已经编写了一个ASP.Net Core 2 Web API。我现在想开发一个前端。我一直在寻找使用剃刀使用ASP.Net Core 2 Web App的方法,但是我一直在努力调用我的Web API。所有ASP.NET指南似乎都在Web应用程序控制器中包括数据库访问,而不是调用外部Web API。

我已经看到了一些在Razor控制器中使用HTTP客户端来调用Web API的示例,但是我不确定这是否是最佳实践。

我的最终目标是拥有两个应用程序:一个Web API和一个Web App。我不介意学习新技术,但是我已经开始使用Razor,因为它看起来非常简单。

我还考虑过遵循ASP.NET Core指南,但没有API,但这似乎也不是最佳实践。

2 个答案:

答案 0 :(得分:2)

除非将两个应用程序分开部署,否则您可能不应该在MVC(Razor)控制器中使用HttpClient

对于您的前端,您需要确定是只坚持使用Razor,还是使用客户端框架(例如Angular或React)。如果您使用的是Razor,则可以从服务器生成的文件有效地运行客户端。在这种情况下,您最好也放弃WebApi并直接提供数据(即经典MVC应用程序)。

如果您想坚持使用WebApi,那么理想情况下,您将需要通过JavaScript对其进行调用。大多数大型框架/库都可以做到这一点。让我知道您是否想要一个示例(以及哪个库),我将扩展这个答案。

答案 1 :(得分:1)

您似乎仍在争论是否要使用API​​,这使我认为您对于要解决的任何问题的解决方案还没有100%明确。我想回答这可能是第一步。

关于剃刀;我不知道什么是剃须刀控制器。 这取决于您的前端,但是假设它是一个网站(听起来像是这样),那么我个人的喜好是拥有Razor前端,并通过AJAX调用该API。

您可能会更进一步,并希望将后端和前端分开。如果您有API,则可以将其视为要调用的单独应用程序,在这种情况下,您不仅限于所使用的前端技术。

我希望这会有所帮助。