ASP.NET Core API中如何正确读取嵌套模型并构造POST请求体
错误根因
你使用的CustomerDetails = { 属性赋值 }是对象初始化器的成员赋值语法,该语法仅适用于已经被实例化的对象,你没有主动为Customergetdata的CustomerDetails属性创建实例,所以赋值时会触发空引用异常。
解决方法
直接在给CustomerDetails赋值时加上new CustomerDetails显式创建实例即可,修改后的构造代码如下:
var body = new Customergetdata { // 新增new CustomerDetails显式实例化嵌套对象 CustomerDetails = new CustomerDetails { customer_bank_account_number = model.customer_bank_account_number, customer_bank_ifsc = model.customer_bank_ifsc, customer_email = model.customer_email, customer_id = model.customer_id, customer_name = model.customer_name, customer_phone = model.customer_phone }, order_amount = order_amount, order_currency = order_currency };
可选优化(避免后续重复实例化)
如果后续多处会用到该模型构造请求,可以直接在Customergetdata类定义时就给CustomerDetails属性设置默认实例,后续赋值时就不需要再加new了:
public class Customergetdata { // 直接初始化属性默认值 public CustomerDetails CustomerDetails { get; set; } = new CustomerDetails(); public string order_amount { get; set; } public string order_currency { get; set; } }
内容的提问来源于stack exchange,提问作者Shan
相关产品推荐
相关产品推荐

