将复杂类型发布到Web Api Client

时间:2013-10-30 21:50:45

标签: asp.net-mvc asp.net-web-api

我是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:不允许使用方法。

由于WebAPI和MVC项目都处于相同的位置,我不确定在何处/如何托管我的webapi。

0 个答案:

没有答案