Unbale для передачи значения свойствам внутреннего класса в mvc 5 - PullRequest
0 голосов
/ 05 марта 2020

Я пытаюсь опубликовать запрос к API с userid и списком продуктов

Я заставил подобную модель передать эту модель для отправки запроса API

this мой класс модели

public class Checkout
{
  public string userId { get; set; }

  public productList productlist { get; set; }

  public class productList
  {
    public int productId { get; set; }

    public int quantity { get; set; }
    public string totalAmount { get; set; }

  }
}

Это мой метод публикации

public ActionResult PlaceOrder(Products products, ConfirmOrder confirmOrder, Checkout orderlist)
{
  var userid = System.Web.HttpContext.Current.User.Identity.Name;
  orderlist.userId = userid;
  orderlist.productlist.productId = products.productId;
  HttpResponseMessage response = GlobalVariables.webApiClient.PostAsJsonAsync("confirmVoucherPayment", orderlist).Result;
}

Я могу получить доступ к userId, когда я передаю productid, тогда он выдает ошибку, указывающую

" Ссылка на объект не установлена ​​для экземпляра объекта " " .Checkout.productlist.get вернул null. " Я хочу передать ниже JSON объект в подтвердить заказ

{"userId":1,"productList":[{"productId":7,"totalAmount":"236.25","quantity":2},{"productId":19,"totalAmount":"400","quantity":1}]}

Ответы [ 3 ]

0 голосов
/ 05 марта 2020

Ваш json имеет список товаров в виде массива. Ваш c# класс должен быть:

public class Checkout { 

    public string userId { get; set; }

    public productList[] productlist { get; set; }

    public class productList
    {
        public int productId { get; set; }

        public int quantity { get; set; }
        public string totalAmount { get; set; }

    }
}
0 голосов
/ 05 марта 2020

Я предлагаю вам сначала сделать уроки.

попробуйте это

  public class ProductList
 {
public int productId { get; set; }
public string totalAmount { get; set; }
public int quantity { get; set; }
}

public class Checkout
{
public int userId { get; set; }
public List<ProductList> productList { get; set; }
}

Вы также должны всегда проверять (смотреть) значение вашего orderlist, если вы передаете json, который вы предоставили, и используете предложенный формат класса, orderlist obj будет правильно проанализирован

0 голосов
/ 05 марта 2020

список продуктов должен быть инициализирован перед использованием. например, в вашем классе изменить

public productList productlist { get; set; }

на

public productList productlist = new productList() { get; set; }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...