Параметр POST в ASP.NET Core API всегда равен нулю в Firefox - PullRequest
2 голосов
/ 06 мая 2019

В моем Angular2 Application я отправляю форму и отправляю данные через POST API to dotnet core backend.Я создал новую форму, которая отлично работает с Chrome, но в Firefox, Я получаю ноль в параметре POST API .

Я все застрял, что искать и как ??Я проверил все возможные проблемы и ничего не нашел, потому что приложение отлично работает с Chrome, все данные обновлены и корректны, но не работает одна форма на Firefox .

Может кто-нибудь помочь мне, что делать?потому что я полностью застрял и понятия не имею, что делать ??

Мои конечные точки:

[HttpPost]
[Route("api/Intimation/SaveIntimation")]
public async Task<ActionResult> SaveIntimation([FromBody] ViewModelCreateIntimation objCreateIntimation)
{
    if (objCreateIntimation == null || objCreateIntimation.objIntimation == null)
            {

                return Ok("null received");
            }
           // remaining code
}

моя служба на угловойсторона

saveIntimation(intiModel) {
console.log(intiModel);
return this.httpClient.post<ViewModelResponse>(this.baseUrl + this._SubmitIntimationUrl, JSON.stringify(intiModel), { headers: this.configurations.getHeaderWithAuth() });
  }

, где this._SubmitIntimationUrl - это "/api/Intimation/SaveIntimation", intiModel - это объект, который я передаю.

Функция контроллера - угловая

this.intimationModel = this.admissionForm.value;
this.adminService.SubmitAdmissionIntimationService(this.createIntimationModel).subscribe(
  (response) => {
    this.responseModel = response;
    // further process
    },

  (error) => {

    this.notification.onClear();
    this.notification.onError(this.errorHandler.handleError(error).error, Constants.MESSAGE_ERROR);
  }
);

Данные, отправляемые из службы (последнее место, где я могу проверить данные)

Intimation Data

Ответы [ 2 ]

2 голосов
/ 06 мая 2019

Проблема выглядит так, потому что имя параметра в вашем контроллере отличается от того, которое передается в запросе.

В вашем контроллере вызывается параметр, к которому пытается привязаться инфраструктураobjCreateIntimation, но ваш запрос показывает, что вы отправляете objIntimation вместо этого.Так как у них разные имена, связыватель модели не знает, что objIntimation следует связать с objCreateIntimation.

Дайте им обоим одинаковое имя, и это должно исправить это для вас.

1 голос
/ 10 мая 2019

Однажды я прошел через ту же проблему, и потребовался почти день, чтобы выяснить причину, стоящую за ней.

Проверьте свои средства выбора даты и их значения, и убедитесь, что они не равны нулю, а их форматтоже правильно.Потому что Firefox немного строги в этом вопросе, а пометка даты в сборщике даты делает его недействительным.

надеюсь, это поможет вам.

...