gpt4 book ai didi

c# - 404 不是由 ajax 调用后产生的

转载 作者:行者123 更新时间:2023-11-28 01:40:33 26 4
gpt4 key购买 nike

我正在尝试将一些数据发布到 Web api Controller ,但我似乎收到了 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);
});
}
});

我做错了什么?

编辑

这是我的网址的基本路径:

enter image description here

问题是我还在另一种情况下以相同的方式执行了 get 请求,它起作用了,这是我的代码:

function getModelTypes(value) {
var url = "http://localhost:3471/api/Cars/GetModelTypes/" + value;
var modelTypeDefaultContent = "Please select a model";
$.getJSON(url, function (arrayObjects) {
---
});
}

如果需要任何其他信息,请告诉我

最佳答案

再次查看代码后,我意识到您缺少方法参数的 [FromBody] 标记。

尝试将代码更改为如下:

[HttpPost]
public CarInputCharacteristicsDTO PostCharacteristics([FromBody]CarInputCharacteristicsDTO characteristics)
{
return characteristics;
}

编辑:

使用您提供的代码,它可以在干净的项目中正常工作。因此,其他地方一定有一些代码导致了这个问题。正如 Kiran 所说,请提供完整的 Global.asax 文件以获得进一步的帮助。

关于c# - 404 不是由 ajax 调用后产生的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20979522/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com