代码之家  ›  专栏  ›  技术社区  ›  Jean-Francois

Asp.net具有实体框架问题的mvc:为联系人创建或更新地址。用Ajax请求填充地址

  •  1
  • Jean-Francois  · 技术社区  · 14 年前

    我有2个相关实体: Contact Address . 彼此之间是有关系的。一个联系人,一个地址。

    在create表单中,我填充FirstName和LastName文本框。我有一个与地址相关的字段。

    在某些情况下,我执行AJAX请求来自动填充地址信息。

    问题是:当我单击save时,会创建一个新的地址条目,而不仅仅是将联系人与AJAX请求提供的AddressID相关联。

    <%: Html.TextBoxFor(model => model.ContactInfo.FirstName)%>
    <%: Html.TextBoxFor(model => model.ContactInfo.LastName)%>
    
    <%:Html.TextBoxFor(model => model.ContactInfo.Address.AddressID)%>    
    <%:Html.TextBoxFor(model => model.ContactInfo.Address.City)%>        
    <%:Html.TextBoxFor(model => model.ContactInfo.Address.Street)%>    
    



    当我保存实体时

    public ActionResult Create(Contact ContactInfo){
        try
        {  
            ContactInfo.IsActive = true;
            _db.AddToContacts(ContactInfo);
            _db.SaveChanges();
        }
    }
    
    1 回复  |  直到 14 年前
        1
  •  0
  •   Craig Stuntz    14 年前

    你是说:

        ContactInfo.IsActive = true;
        if (ContactInfo.HasValue)
        {
            ContactInfo.Address = _db.Addresses.Single(a => a.AddressID == ContactInfo.Address.AddressID);
        }
        _db.AddToContacts(ContactInfo);
        _db.SaveChanges();
    

    ?

        ContactInfo.IsActive = true;
        if (ContactInfo.HasValue)
        {
            ContactInfo.Address = null;
            ContactInfo.AddressID = ContactInfo.Address.AddressID;
        }
        _db.AddToContacts(ContactInfo);
        _db.SaveChanges();