1

我是 WebAPI 的新手。

我有一个 MVC 项目和 webApi 项目都驻留在**same solution**. 此外,BLL 类库和 DAL 类库位于同一解决方案下。

早些时候,我的 MVC 项目将与 BLL 对话,现在我正在尝试创建一个位于 MVC 和 BLL 之间的 WebAPi 项目。

到目前为止,这是我想出的:

我正在使用 HTTPClient 发布到 WebApi 项目。我的控制器上的 post 方法接受单个参数(模型)。

  StatsCriteria criteria = new StatsCriteria();
......
    var client = new HttpClient();
    var response = client.PostAsJsonAsync("http://localhost:52765/api/reports", criteria).Result;
    .......

这是我在 Webapi 中的控制器的签名

[HttpPost]
public CMAReportVM Reports([FromBody] StatsCriteria criteria)
{
  var cmaReport = Service3.GetCMAReport(criteria.Mlsnums);
   //Create Map to enable mapping business object to View Model
             Mapper.CreateMap<CMAReport, CMAReportVM>();
   // Maps model to VM model class 
             var cmaVM = Mapper.Map<CMAReport, CMAReportVM>(cmaReport);
  reutn cmaVM; 
}

// 这是我的路由:

config.Routes.MapHttpRoute(
  name: "DefaultApi",
  routeTemplate: "api/{controller}/{id}",
  defaults: new { id = RouteParameter.Optional }

我收到以下
405 : Method not allowed。

由于 WebAPI 和 MVC 项目都驻留在同一个 sloution 下,我不确定在哪里/如何托管我的 webapi。

4

0 回答 0