在cshtml文件中使用HttpClient

本文关键字:HttpClient cshtml 文件 | 更新日期: 2023-09-27 18:27:05

由于某些要求,我需要使用System.Net.Http.HttpClient将代码从控制器移动到cshtml文件。但是,我似乎无法在cshtml文件中调用System.Net.Http.HttpClient。

所以,我的问题是如何在cshtml文件中调用httpclient?

至于为什么我需要在cshtml文件中调用HttpClient,这是因为我需要为使用相同布局的页面使用相同的外部API。这意味着,如果我需要将其包含在控制器中,我将不得不包含在几乎每一个控制器中(超过一百个),我觉得这是多余的。

场景:调用web api以返回菜单列表并显示在具有Layout="CustomLayout.cs.html"的cshtml文件中

我希望给出的场景能很好地解释为什么我需要在cshtml中调用httpclient。如果有更好的选择,我将不胜感激。

在cshtml文件中使用HttpClient

您可以为使用相同布局(或不使用相同布局)的页面使用外部API,而无需将代码从控制器移动到视图。。如果你这样做,你将打破MVC架构设计。视图应该只关心显示和渲染数据。

另一点是,如果两个视图需要访问相同的代码来调用外部提供者,那么您的视图中就会出现重复的c#代码。

更好的方法是将外部Api代码集中在某种服务层后面,并使用RenderAction或Action助手启动与该服务层的通信。