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

在ASP.NET MVC 2中。在创建视图中添加新的关系记录

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

    这是我的数据库设计。
    联系人
    联系人ID
    联系人姓名

    电子邮件地址
    电子邮件ID
    联系人ID
    电子邮件文本

    在“创建”视图中,我有“联系人姓名”字段和“添加电子邮件地址”按钮。
    当我单击添加电子邮件地址时,会弹出一个弹出窗口,执行Ajax请求以获取地址字段。 我的问题是我需要在创建地址之前创建联系人,因为我首先需要一个联系人ID。有人知道怎么做吗?.


    我使用ASP.NET MVC 2和实体框架4

    2 回复  |  直到 14 年前
        1
  •  0
  •   RememberME    14 年前

    我的代码做的事情有点复杂,但非常相似。我要做的是在关闭对话框时创建和编写一个联系人ID为空的电子邮件条目。然后,当我提交我的联系人表单时,我有一个带有emailid的字段。在“联系人保存”操作中,我检查电子邮件记录,如果“联系人ID”字段为空,则插入联系人ID并保存电子邮件记录。我使用相同的部分视图来创建和编辑,因此,如果它正在编辑现有电子邮件,或向现有联系人添加新电子邮件,则“联系人ID”字段已经填充。

    在这种简单的情况下,当用户关闭对话框将信息保存到父窗体上的隐藏字段(如果不希望显示这些字段,如果希望显示这些字段,则最好是Ryan的建议),然后在联系人提交上创建和保存这两个记录时,这可能更有意义。

    如果这是一个“创建”,那么我真的不理解为什么需要一个Ajax请求来获取值…

        2
  •  2
  •   Ryan Ternier    14 年前

    添加电子邮件时,是否将其提交到服务器?或者,您只是将这些数据传回父窗口(联系人的名称在这里),并将其放在名称下,以便在提交前可见?

    另一个选项是不要打开弹出窗口,只需执行一些JS魔术,并在联系人姓名的正下方显示一个电子邮件字段(或者在联系人姓名下只显示一个选项文本框)。

    所以你会看到:

    Contact Name [......]
    (Add Email) +
    

    他们点击+键,结果是:

    Contact Name [.......]
    Email 1:  [.......]  (remove x)
    (Add Email) +
    

    提交后,你会有你的联系人姓名和一个很好的电子邮件列表。创建联系人,然后创建电子邮件。=