0

Person と Address の 2 つのモデルがあります。以下に示すように、これら 2 つのモデルを組み合わせた 1 つのモデルを作成しました。

public class Trust_Person_Master
{
    public Person_Master PersonMaster { get; set; }

    public Address_Master AddressMaster { get; set; }

    public Trust_Person_Master()
    {

    }

    public Trust_Person_Master(Person_Master personMaster, Address_Master addressMaster)
    {
        PersonMaster = personMaster;
        AddressMaster = addressMaster;
    }   

}

このTrust_Person_Masterモデルを使用して、人物と住所を保存します。

というわけで保存・編集の方法は以下の通りです。

[HttpPost, Ajax(true)]
public JsonResult SaveTrust(Trust_Person_Master entity)
{
    int nCurrPersonId = entity.PersonMaster.Person_ID; 
    if (entity.PersonMaster.Person_ID > 0)
    {
        var update = db.Person.Find(entity.PersonMaster.Person_ID);
        if (ModelState.IsValid)
        {
            TryUpdateModel(update);            
        }     
    }
    else
    {
        db.Person.Add(entity.PersonMaster);
    }
    db.SaveChanges();
    HttpContext.Application["TrustPersonSearch"] = null;    
    return Json(new { person_id = entity.PersonMaster.Person_ID, location_id = entity.PersonMaster.Location_ID });
}

しかし、私の問題は、人を編集するとき、つまり人のマスターのフィールドだけで名前を言うと、エラーを発生させることなく必要に応じてコードを実行することです。ただし、変更は反映されません。

4

1 に答える 1

0

TryUpdateModel()メソッドを表示する必要があります。モデルをどのように更新していますか?

投稿したコードを見ると、すべて問題ないように見えますが、エンティティを更新する方法を確認したいと思います。問題はそこにあるようです。

可能な限りデバッグし、調査結果とともにここに戻ってきてください。

于 2012-12-17T07:20:24.373 に答える