我正在尝试将一些数据发布到web api控制器,但我似乎回到了404 NOT Found响应,这是我的代码:
public class CarsController : ApiController
{
.....
[HttpPost]
public CarInputCharacteristicsDTO PostCharacteristics(CarInputCharacteristicsDTO characteristics)
{
return characteristics;
}
}
public static void Register(HttpConfiguration config)
{
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{action}/{id}",
defaults: new { id = RouteParameter.Optional }
);
config.Formatters.Clear();
config.Formatters.Add(new JsonMediaTypeFormatter());
}
public class CarInputCharacteristicsDTO
{
public int Manufacturer { get; set; }
public int ModelType { get; set; }
public int Fuel { get; set; }
public int Transmission { get; set; }
public int BodyType { get; set; }
public int PriceFrom { get; set; }
public int PriceTo { get; set; }
public int Power { get; set; }
public int YearFrom { get; set; }
public int YearTo { get; set; }
public int KilometersFrom { get; set; }
public int KilometersTo { get; set; }
}
这是我的Javascript代码:
display.on("click", function () {
if (isValidInput()) {
var data = {
Manufacturer: manufacturer.val(),
ModelType: modelType.val(),
Fuel: fuel.val(),
Transmission: transmision.val(),
BodyType: bodyType.val(),
PriceFrom: priceFrom.val(),
PriceTo: priceTo.val(),
Power: power.val(),
YearFrom: yearFrom.val(),
YearTo: yearTo.val(),
KilometersFrom: kilometersFrom.val(),
KilometersTo: kilometersTo.val()
};
var url = "http://localhost:3471/api/Cars/PostCharacteristics";
$.post(url, JSON.stringify(data) , function(stuff) {
console.log(stuff);
});
}
});
我做错了什么?
修改
这是我的网址的基本路径:
问题是我在另一个案例中也以同样的方式执行了get请求,这是我的代码:
function getModelTypes(value) {
var url = "http://localhost:3471/api/Cars/GetModelTypes/" + value;
var modelTypeDefaultContent = "Please select a model";
$.getJSON(url, function (arrayObjects) {
---
});
}
如果需要任何其他信息,请告诉我
答案 0 :(得分:1)
再次查看代码后,我意识到您缺少方法参数的[FromBody]标记。
尝试将代码更改为:
[HttpPost]
public CarInputCharacteristicsDTO PostCharacteristics([FromBody]CarInputCharacteristicsDTO characteristics)
{
return characteristics;
}
修改强>
使用您提供的代码,它可以在干净的项目中正常运行。因此,其他地方必须有一些代码导致问题。正如Kiran所说,请提供完整的Global.asax文件以获得进一步的帮助。