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