3

我有一个包含普通 MVC 控制器和 web api 控制器的 web MVC 应用程序。

什么是从同一项目中的正常 MVC 控制器操作调用 Web api 控制器的正确方法?

4

3 回答 3

3

ASP.Net Web API 旨在通过 HTTP 调用,而不是从您的服务器端逻辑调用。也许您呈现的演示文稿可以通过客户端请求(例如 ajax)调用您的 Web API。

如果您发现自己的 MVC 控制器的操作需要执行仅在 Web API 操作中可用的代码,那么您应该考虑将该代码与您的 Web API 分离,并将其移动到代码中更与平台无关的区域(服务层?)。

于 2013-01-17T19:10:48.433 回答
0

如果您只需要一种将 JSON(或类似的)发送回客户端的方法,您可以简单地选择从 MVC 控制器返回除视图之外的其他内容。然后这一切都在您的 MVC Web 应用程序中处理,您不需要使用 Web API。

public JsonResult DetailsJson(int id)
{
    Car car = carRepository.Find(id);
    return Json(car, JsonRequestBehavior.AllowGet);
}

然后将使用调用此示例

/Cars/DetailsJson/3

请注意,出于测试原因,示例中允许 GET(通过添加 JsonRequestBehavior.AllowGet),如果您只想支持 POST 请求,可能会将其删除。

于 2013-01-18T08:11:59.360 回答
0

请参阅从 MVC 控制器调用 WEBAPI 服务是一种反模式吗?

简而言之,使用 httpclient 来访问您的 api。

于 2013-03-08T19:13:31.580 回答