无法将值传递给 mvc 5 中的内部类属性
Posted
技术标签:
【中文标题】无法将值传递给 mvc 5 中的内部类属性【英文标题】:Unbale to pass value to inner class properties in mvc 5 【发布时间】:2020-06-18 02:32:09 【问题描述】:我正在尝试使用 userid
和产品列表向 API 发布请求
我已经做了一个类似的模型,通过这个模型来发布 API 的请求
这是我的模型类
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;
当我传递 productid 时,我可以访问 userId,然后它会引发错误说明
"对象引用未设置为对象的实例" ".Checkout.productlist.get 返回 null。" 我想在 JSON 对象下方传递以确认顺序
"userId":1,"productList":["productId":7,"totalAmount":"236.25","quantity":2,"productId":19,"totalAmount":"400","quantity":1]
【问题讨论】:
【参考方案1】:productlist 应该在使用前进行初始化。例如在你的班级变化
public productList productlist get; set;
到
public productList productlist = new productList() get; set;
【讨论】:
【参考方案2】:您的 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;
【讨论】:
【参考方案3】:我建议你先重新上课。
试试这个
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;
如果您传递您提供的 json 并使用建议的类格式,您还必须始终检查(观察)orderlist
的值,orderlist
obj 将被正确解析
【讨论】:
以上是关于无法将值传递给 mvc 5 中的内部类属性的主要内容,如果未能解决你的问题,请参考以下文章
mvc 从视图传递到Controller 多个不同的实体类接收如何做呢?