У меня есть контроллер MVC с jsonResult, который передает корзину сеанса в список SquareS CreateOrderRequestLineItem, но когда я инициализирую список, код выдает нулевое исключение для количества, поскольку это обязательное свойство.Я сопоставил количество и даже сразу установил его в строковое значение. Я установил количество свойств, но пустое исключение выдается до того, как код достигнет сопоставления.Нужно ли устанавливать количество не ноль или 0, если ноль где-то?Вот мой код контроллера.
Сеансовая корзина строит корзину на основе класса продукта и модели продукта с установленными значениями productid, name, number, price и tax.
Как сделатьЯ сопоставляю с новым списком, если он выдает нулевое исключение до того, как мой код может достигнуть сопоставления?
Примечание: я добавил еще один List ItemDetail для передачи данных сеанса после того, как ошибка нулевого исключения уже была выдана, и это нелибо не работает.
Обратите внимание: когда я не использую ссылки на объекты Square и просто использую свои общие списки и возвращаю json, моё количество отображается без нулей для каждого элемента в моей корзине.
public JsonResult CheckoutRequest(string id)
{
List<Item> cart = (List<Item>)Session["cart"];
List<ItemDetails> itemDetails = cart.Select(s => new ItemDetails
{
ProductID = Convert.ToInt32(s.Product.ProductID),
Name = s.Product.Name,
Price = s.Product.Price,
Quantity = Convert.ToString(s.Quantity)
}).ToList();
var lineItems = itemDetails.Select(s => new CreateOrderRequestLineItem()
{
Quantity = "1",
Name = s.Name,
BasePriceMoney = new Money
{
Amount = s.Price,
Currency = Money.CurrencyEnum.USD,
},
CatalogObjectId = Convert.ToString(s.ProductID),
}).ToList();
CreateOrderRequest order = new CreateOrderRequest
{
ReferenceId = Convert.ToString(Guid.NewGuid()),
LineItems = lineItems
};
// Configuration.Default.AccessToken = "YOUR_ACCESS_TOKEN";
var body = new CreateCheckoutRequest
{
IdempotencyKey = Convert.ToString(Guid.NewGuid()),
Order = order,
AskForShippingAddress = true,
MerchantSupportEmail = "americanapparelusa@aol.com"
};
return Json(new
{
locationId,
body
}, JsonRequestBehavior.AllowGet);
}