从MVC Controller调用Web API来构建并传递模型以进行查看

jbr*_*ant 6 asp.net-mvc razor asp.net-web-api

我试图掌握许多对我来说很新的概念,我需要对使用Web API创建我的强类型模型并将其从MVC Controller传递到Razor视图的最佳方法进行一些澄清.

如许多示例所示,您通常从某个存储库创建模型,然后将其传递给视图(强类型或非强类型),然后使用Razor语法,使您可以访问模型以构建html,而不必使用JavaScript .

对我来说,事情变得复杂的是当我想利用Web API来创建我想要使用的模型时就像我在前一段中描述的那样使用它.

我应该调用新的HTTPClient来从我的控制器中调用Web API服务吗?我是否需要反序列化并格式化响应?等等...

我总是在视图中看到来自脚本的调用和操作......

有人能指出我正确的方向吗?

谢谢.

Jam*_*mes 8

如果您的WebAPI是一个单独的端点,即不是现有站点的一部分,那么您必须从控制器内部发送HttpWebRequest,然后从响应中序列化数据并将其传递到您的视图中.

或者,您可以通过AJAX直接从视图中调用API,但是,我不确定您是否需要控制器在数据进入视图之前对数据执行某些操作.

  • 看待它的方法是 - ApiControllers返回*data*例如XML/Json以供客户端使用,标准MVC控制器返回*views*以提供给浏览器.标准控制器也可以返回数据,但出于此目的,将它们视为*view*controllers.所以考虑到一切,问问自己你需要什么类型的控制器...... (8认同)