«Введенные данные недействительны». NET Core Web API с Razor Pages

Кто-нибудь может помочь, когда я использую метод post в почтальоне, я получаю только «Введенные данные недействительны». Пожалуйста, помогите, я потратил на это слишком много времени !!!

Контроллер:

[HttpPost]
public IActionResult Create(M05PurchaseAgreement item)
{
    _context.M05PurchaseAgreement.Add(item);
    _context.SaveChanges();

    return CreatedAtRoute("GetTodo", new { agreementNo = item.AgreementNo }, item);
}

Модель:

public class M05PurchaseAgreement
{
    [Key]
    public string AgreementNo { set; get; }
    public string Status { set; get; }
    public string OrderStatus { set; get; }
    public string AccountStatus { set; get; }
    public string StockID { set; get; }
    public string RegistrationNo { set; get; }
    public string Revision { set; get; }
    public string CalendarPeriod     { set; get; }
    public string PurchaseType { set; get; }
    public DateTime PurchaseDate { set; get; }
    public string PurchaseSalesman { set; get; }
    public decimal PurchasePrice { set; get; }
    public string TaxMethod { set; get; }
    public string PurchaseInvoice { set; get; }
    public string EntryStaff { set; get; }
    public DateTime EntryDate { set; get; }
    public string LastEditStaff { set; get; }
    public DateTime LastEditDate { set; get; }
    public string Notes { set; get; }
    public string BranchCode { set; get; }
    public string Location { set; get; }
}

Изменить - я использую JQuery

JQuery:

$.ajax({
    type: 'POST',
    url: 'https://localhost:44328/api/m05purchaseagreement',
    accepts: 'application/json',
    contentType: 'application/json',
    data: JSON.stringify(item),
    error: function (jqXHR, textStatus, errorThrown) {
        alert(JSON.stringify(item));
    },
    success: function (result) {
        $('#agreementNo').val('');
    }
});

Это должно помочь: Связывание сложных объектов.

Kirk Larkin 05.12.2018 12:52

Но моя модель и контроллер находятся внутри WebApi.

Teh Wayne 06.12.2018 03:04

Не могли бы вы показать свое изображение почтальона и значение item ajax? Кроме того, убедитесь, что значения трех полей DateTime верны.

Ryan 06.12.2018 08:27
Как конвертировать HTML в PDF с помощью jsPDF
Как конвертировать HTML в PDF с помощью jsPDF
В этой статье мы рассмотрим, как конвертировать HTML в PDF с помощью jsPDF. Здесь мы узнаем, как конвертировать HTML в PDF с помощью javascript.
1
3
3 803
2

Ответы 2

Если вы используете [ApiController], ошибки проверки модели автоматически вызывают ответ HTTP 400. Вы можете отключить поведение по умолчанию, установив для свойства SuppressModelStateInvalidFilter значение true (см. Документ здесь).

В Postman я отправляю данные модели с помощью необработанного json, как показано ниже.

В контроллере используйте [FromBody]

[HttpPost]
public IActionResult Create([FromBody] M05PurchaseAgreement item)

И в виду, вам нужно передать данные json, ваш элемент похож на

var item = { "Status": "active", "OrderStatus": "active" };

Привет, спасибо за решение, но все равно не работает

Teh Wayne 07.12.2018 04:14

Я столкнулся с этим, и у меня ничего не работало, пока я не понял, что выбрал «текст» вместо «JSON» в Postman, см. Это изображение:

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

Другие вопросы по теме