在“创建操作方法”中保存到两个不同的表

时间:2015-02-14 21:25:14

标签: c# asp.net asp.net-mvc razor asp.net-mvc-5

我正在做一个基本的客户保存,但无法弄清楚如何另外将地址保存到我的地址表。

目前在我的Create.cshtml视图中,我拥有所有主要客户字段,例如姓名,电话,传真,电子邮件。然后另外添加到我的表单中的是一个名为Address.cshtml的EditorTemplate,其中包含所有地址字段。

我的总体目标是使用EditorTemplate字段中的信息在Address表中创建一个新的Address记录,然后在Customer表中使用主要客户字段值和新创建的Address中的AddressId创建一个新的Customer记录。 / p>

我不确定会进入“[Bind(包含部分)。它是AddressId,还是Address.Address1,Address.Address2,Address.City等。

这是我的POST Action Method目前的样子:

    [HttpPost]
    [ValidateAntiForgeryToken]
    public ActionResult Create([Bind(Include = "Name,Phone,Fax,Email,Address")] Customer customer)
    {
        if (ModelState.IsValid)
        {
            int addressId = _adminService.SaveAddress(customer.Address);
            customer.AddressId = addressId; 
            _custService.SaveCustomer(customer);
        }
        return View(Edit);
    }

1 个答案:

答案 0 :(得分:1)

另外,添加到Stephen所说的内容......你应该创建一个视图模型(如果你还没有),它封装了两个视图的属性。我还建议使用在视图模型中创建Address和Customer对象的方法。