You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ASP.NET Core MVC新增模型字段puertoembarque未在JSON输出中显示

解决新增参数未出现在JSON输出中的问题

以下是几个可能的原因及对应的解决方法:

  • 确认属性是否被赋值
    先在序列化前加调试代码,检查Vanexo3_h实例的puertoembarque属性是否有实际值。如果属性为null,WCF的DataContractSerializer默认会忽略空值字段。

  • 显式设置DataMember的EmitDefaultValue属性
    默认情况下,[DataMember]的EmitDefaultValue为true,但属性值为默认值(如字符串null或空串)时,序列化器可能不输出该字段。可以强制输出:

    [DataMember(EmitDefaultValue = true)]
    public string puertoembarque { get; set; }
    
  • 检查WCF序列化配置
    确认服务使用的是DataContractJsonSerializer,且没有自定义过滤规则。比如检查配置文件中是否开启了ignoreExtensionDataObject这类可能影响字段输出的选项。

  • 更新客户端服务引用(若涉及客户端调用)
    如果是客户端获取JSON,可能是客户端的服务引用未更新,导致本地模型没有新增字段。此时需要删除旧引用,重新生成。

  • 验证数据库映射(若字段来自数据库)
    如果Vanexo3_h是EF实体类,要确认数据库中存在对应puertoembarque字段,且EF映射配置(Fluent API或DataAnnotations)正确包含该字段,确保读取数据时能赋值。


原问题相关代码

Vanexo3_h模型代码

using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Runtime.Serialization;
using System.Web;

namespace WcfServiceSyspesca.Models
{
    [DataContract]
    public partial class Vanexo3_h
    {
        [Key]
        [DataMember]
        public String dm { get;set; }
        [DataMember]
        public String nro_reg { get;set; }
        [DataMember]
        public DateTime? fecha_reg { get;set; }
        [DataMember]
        public String ctnr_nber { get; set; }
        [DataMember]
        public string truck_name { get; set; }
        [DataMember]
        public Int32? truck_country { get; set; }
        [DataMember]
        public string puertozarpe { get; set; }
        [DataMember]
        public string nomnaviera { get; set; }
        [DataMember]
        public string doc_trans { get; set; }
        [DataMember]
        public Decimal cajas{ get; set; }
        [DataMember]
        public Decimal unidades_kg { get; set; }
        [DataMember]
        public Decimal peso_neto_caja { get; set; }
        [DataMember]
        public Decimal peso_brut_caja { get; set; }
        [DataMember]
        public Decimal ccl { get; set; }
        [DataMember]
        public string truck_countryname { get; set; }
        [DataMember]
        public int barcoExpID { get; set; }
        [DataMember]
        public string barcoEXP { get; set; }
        [DataMember]
        public int PaisBarcoExpID { get; set; }
        [DataMember]
        public string PaisbarcoExp { get; set; }
        [DataMember]
        public Int32? CodigoUsuarioOrigen { get; set; }
        [DataMember]
        public string nombreusuario { get; set; }
        [DataMember]
        public string puertoembarque { get; set; } /*<--THIS IS THE NEW PARAMETER*/
    }
}

当前JSON输出

{
    "CodigoUsuarioOrigen":16,
    "PaisBarcoExpID":128,
    "PaisbarcoExp":"LIBERIA",
    "barcoEXP":"SEAHORSE-01",
    "barcoExpID":128,
    "cajas":1445,
    "ccl":17484.74,
    "ctnr_nber":"FANU50697824",
    "dm":"3-7346",
    "doc_trans":"**************",
    "fecha_reg":"\/Date(2148945600000-0900)\/",
    "nombreusuario":"MATIAS CAMPOS",
    "nomnaviera":null,
    "nro_reg":"552365489",
    "peso_brut_caja":342.30,
    "peso_neto_caja":315.00,
    "puertozarpe":null,
    "truck_country":null,
    "truck_countryname":null,
    "truck_name":"",
    "unidades_kg":7225.0000
}

内容的提问来源于stack exchange,提问作者Gerardo Orellana

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 04:04:50