由于一些要求,我需要将System.Net.Http.HttpClient的代码从控制器移动到cshtml文件。但是,似乎我无法在cshtml文件中调用System.Net.Http.HttpClient。
那么,我的问题是如何在cshtml文件中调用httpclient?
至于为什么我需要在cshtml文件中调用HttpClient,这是因为我需要为使用相同布局的页面使用相同的外部API。这意味着如果我需要将它包含在控制器中,我将不得不包含在几乎每个控制器中(超过一百个),我觉得这是多余的。
场景:调用web api返回菜单列表并在布局=“CustomLayout.cshtml”的cshtml文件中显示
我希望给出的场景能够解释为什么我需要在cshtml中调用httpclient。如果有更好的选择,我很感激。
答案 0 :(得分:0)
您可以为使用相同布局(或不使用)的页面使用外部API,而无需将该代码从控制器移动到View ..如果这样做,您将破坏MVC架构设计。该视图应仅关注显示和呈现数据。
另一点是,如果两个视图需要访问相同的代码来调用外部提供程序,那么您的视图中最终会出现重复的c#代码。
更好的方法是将外部Api代码集中在某种服务层之后,并使用RenderAction或Action帮助程序启动与该服务层的通信。