我正在尝试在应用中实现一项功能,该功能将在Google地图上显示一些数据。它将在显示它的页面上的iframe中调用web api服务。 我想要的是,并且考虑是否可能,web api接收请求,调用返回xml的外部API。 Web api接受xml,处理它并生成一个视图(或部分视图),即cshtml,并将其返回给已请求它的应用程序。通过这样做,我将有一个共同的后端,将来如果有另一个应用程序(肯定将来很快就会存在)需要稍微不同的数据,可以共享相同的后端,然后是web api,具体取决于哪个应用程序请求了它,可以将重复观点归还给它。
我们今天可以使用web api应用程序作为可以返回视图的全面Web应用程序吗? 或者任何想法如何使用MVC 5或6进行操作?
答案 0 :(得分:1)
如果我理解正确,这可行:
您可以使用AJAX请求调用MVC操作并获取HTML响应。 WebAPI更适合于返回数据(xml / json)而不是HTML的REST样式接口。 在这种情况下,您希望返回HTML,因此MVC是更直接的方法。
您希望在中间步骤中调用某些Web服务这一事实并未改变这一点。无论您是采用哪种方式,如果您需要调用Web服务的操作方法,您可以使用HttpClient或类似的实用程序来进行该调用。
这是一些伪代码来演示
// this method called from browser client
public ActionResult SomeMvcAction(int someId)
{
MyViewModel vm = new MyViewModel();
using(var client = new HttpClient())
{
// retrieve XML from web service
// pump data into view model
vm.Items = xml.Select(...);
}
return View("SomeViewName", vm); // pass view model to view to return HTML
}