Получение статуса: 404, statusText: "Not Found", url ... в asp.net с использованием основного webApi? - PullRequest
0 голосов
/ 05 ноября 2019

Ошибка 404 в ASP.NET Core Web API. С ASP.NET я использую Angular 7 для внешнего интерфейса. Когда я нажимаю кнопку «Сохранить» формы, данные формы доходят до метода публикации в угловых значениях, но после нажатия кнопки «Сохранить» отображается ошибка 404. Для этой формы я создал первую модель, в которой я определяю ее свойство для базы данных, затем я создал контроллер для этой модели и использую то свойство, которое я объявил в модели.

Файл угловой службы ts:

export class MurderService {
   BaseUrl :string ='';
  constructor( private http:HttpClient, private config:ConfigService) {
    this.BaseUrl=config.getApiURI();
   }

  murderQuestionnaire(data: any){
     var murderBody={
       Dead: data.Dead,
       Wounded: data.Wounded,
       CriminalsInvolved: data.CriminalsInvolved,
       CriminalAppearance: data.CriminalAppearance,
       VehiclesUsed: data.VehiclesUsed,
       WeaponsDescription :data.WeaponsDescription
     };
     return this.http.post(this.BaseUrl +'/Complians' , murderBody);//upto here data reaches 
      successfully
  }
}

Контроллер API для этой службы:

    [Route("api/[controller]")]
    [ApiController]
    public class ComplainMurderController : ControllerBase
    {
        [HttpPost]
        [Route("Complians")]
        //api:/Complians
        public void PostComplainMurder(Complians complian)
        {
            var complianMurder = new Complians()
            {
                Dead = complian.Dead,
                Wounded = complian.Wounded,
                CriminalsInvolved = complian.CriminalsInvolved,
                CriminalAppearence = complian.CriminalAppearence,
                VehiclesUsed = complian.VehiclesUsed,
                WeaponsDescription = complian.WeaponsDescription
            };
            try
            {
               // var result = await complian.Add(complianMurder);
                AuthenticationContext authenticationContext = new AuthenticationContext();
                authenticationContext.Add(complianMurder);
                authenticationContext.SaveChanges();
            }
            catch(Exception ex)
            {
                throw ex;
            }
        }
    }
}

Ошибка

POST http://localhost:49601/api/Complians 404 (не найдено)

1 Ответ

1 голос
/ 05 ноября 2019

Ваш маршрут контроллера определен как api/[controller] (в вашем случае это приводит к api/ComplainMurder). Ваше действие определено как Complians. Это ваш фактический маршрут: api/ComplainMurder/Complians, который не соответствует api/Complians.

Если вы измените свою сторону Angular 7, это исправит это:

return this.http.post(this.BaseUrl +'/ComplainMurder/Complians' , murderBody);

Примечание: будьте осторожныс неправильным / непоследовательным написанием (соответствует вместо жалобы), поскольку это может привести к путанице и / или ошибкам в будущем.

...