首页 > 解决方案 > ViewModel 中 Reference 对象的所有 ID 为 0 而 Post 方法

问题描述

我有一个视图模型,它由一个从实体框架中检索到的对象组成。我在 Razor 视图中使用该视图模型来显示必填字段。在尝试更新该对象时,我收到错误,因为该对象内的引用对象中的所有 ID 都设置为 0。

我经历了一些解决方案,其中提到使用 ID 属性设置隐藏字段。

<input type="hidden" value="@Model.TID" />

但我必须在上述解决方案中设置近 20 个隐藏字段。

那么,您能否帮助我指导一种标准方法来绑定对象的此 ID 属性和该对象内的对象。

型号说明

[Table("Country")]
public class Country : BaseEntity
{
    [Key]
    public int ID { get; set; }

    public int TenantId { get; set; }

    [Required]
    [StringLength(450)]
    public string CountryCode { get; set; }

    [Required]
    public int CurrencyId { get; set; }
    public int Region7Id { get; set; }
    public int? Region8Id { get; set; }
    public int? Region9Id { get; set; }
    public int? Region10Id { get; set; }

    public int Approach { get; set; }
    
    public bool AggregatedOnEntrepreneurTrPartner { get; set; }

    public bool IsRegionalBms { get; set; }

    public int? Region11Id { get; set; }
    public int? Region12Id { get; set; }
    public int? Region13Id { get; set; }
    public int? Region14Id { get; set; }
    public bool IsTemplate { get; set; }
    public int? CountryTemplateId { get; set; 

    #region ForeignKeys
    [ForeignKey("TenantId")]
    public virtual Tenant Tenant { get; set; }

    [ForeignKey("CurrencyId")]
    public virtual Currency Currency { get; set; }

    [ForeignKey("Region7Id")]
    public virtual Region Region7 { get; set; }
    [ForeignKey("Region8Id")]
    public virtual Region Region8 { get; set; }
    [ForeignKey("Region9Id")]
    public virtual Region Region9 { get; set; }
    [ForeignKey("Region10Id")]
    public virtual Region Region10 { get; set; }

    [ForeignKey("Region11Id")]
    public virtual Region Region11 { get; set; }
    [ForeignKey("Region12Id")]
    public virtual Region Region12 { get; set; }
    [ForeignKey("Region13Id")]
    public virtual Region Region13 { get; set; }
    [ForeignKey("Region14Id")]
    public virtual Region Region14 { get; set; }

    [ForeignKey("CTmpId")]
    public virtual Country ConTemplate { get; set; }

    [ForeignKey("GxxpLocalId")]
    public virtual Gxxp GxxpLocal { get; set; }
    [ForeignKey("GxxpGroupId")]
    public virtual Gxxp GxxpGroup { get; set; }

    #endregion
}

}

标签: c#.netasp.net-mvc.net-corerazor

解决方案


推荐阅读