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
相关产品推荐
相关产品推荐

