我是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。