1

Я пытаюсь отправить некоторые данные в контроллер Web API, но я, кажется, получает назад 404 НЕ Found ответ вот мой код:404 не в результате после Ajax вызова

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-код:

Что я делаю неправильно?

EDIT

Это S базовый путь для моего URL:

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) { 
     --- 
    }); 
} 

Если какая-либо другая информация необходима, пожалуйста, дайте мне знать

+0

Поскольку я не знаю, что такое настройки IIS Express для вашего приложения, я не могу определить, является ли URL-адрес неправильным или нет, но я бы рекомендовал изменить URL-адрес, определенный в вызове AJAX, на относительный «/ api/Cars/PostCharacteristics "и пусть клиент разобрался с остальными. Это лучшая информация, которую я могу дать в это время, если вы не можете предоставить более подробную информацию. – Inari

+0

Вы видите какую-либо другую информацию в теле ответа 404? ... также вы можете поделиться своей конфигурацией Global.asax ... –

ответ

1

После просмотра кода снова я понял, что вам не хватает тега [FromBody] для параметра для вашего метода.

Попробуйте изменить код следующим образом:

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

EDIT:

Используя код, который вы предоставили, он правильно работает в чистом проекте. Поэтому в другом месте должен быть какой-то код, который вызывает проблему. Как сказал Киран, просьба предоставить полный файл Global.asax для дальнейшей помощи в этом.

+0

Это тот же результат, я считаю, что он имеет какое-то отношение к маршрутизации .... I я могу только вызывать URL-адреса, которые имеют этот формат api/{controller}/{action}/{Id} – aleczandru

Смежные вопросы