Asp Mvc 4:将Child添加到新Parent

时间:2013-08-29 13:55:49

标签: asp.net-mvc-4 one-to-many

我需要一些帮助,

我会干脆做的。我有一个对象Client,有很多约会。喜欢的东西:

public partial class Client
{ 
    ...
    public virtual IList<Appointment> Appointments{ get; set; }
}

在asp中是否有办法在同一页面中创建一个约会的新客户?

P.S:现在,我可以通过将部分视图传递给客户端ID并使用ajax和partialView来向现有客户添加约会。但是,新客户没有Id。我该怎么办?

更新:精确

这就是我在编辑视图中的内容:

<p>
@Ajax.ActionLink("NewMeeting", "NewAppointmentFrm", new { clientId = Model.Id }, new AjaxOptions { UpdateTargetId = "appointmentPopup", OnSuccess = "displayFormInPopup('#appointmentPopup','" + "NewMeeting") + "',600,'auto');" })
</p>
<div style="display:none;width:600px" id="appointmentPopup"></div>

在控制器中我有

Appointment appointment = new Appointment()
        {
            Client = GetClientById(clientId)
        };

return PartialView("NewAppointmentFrm", appointment);

通过提交PartialView(NewAppointmentFrm - 约会详情),我这样做:

public ActionResult CreateClientAppointment(int clientId, Appointment appointment)
{
    var client = GetClientById(clientId);
    client.Appointments.add(appointment)
    SaveClient(client);
    return RedirectToAction("Edit", new { id = candidateId });
}

感谢您的帮助

1 个答案:

答案 0 :(得分:1)

MVC4的模式是每个模型都在自己的页面中。 如果要在单独的页面中添加新模型。 或多或少如此处所示: http://www.asp.net/mvc/tutorials/mvc-music-store/mvc-music-store-part-5

如果你试图偏离这种模式,这真的很痛苦。 所以,我建议将客户端放在视图中,并在单独的视图中添加约会 让MVC完成剩下的工作。