在asp.net mvc 2中。在“创建视图”中添加新关系记录

时间:2010-09-24 16:28:50

标签: asp.net-mvc-2 entity-framework-4

这是我的数据库设计。
联系
使用ContactID
联系人姓名

EmailAddress的
EMAILID
使用ContactID
EmailText

在创建视图中,我有一个ContactName字段和一个按钮添加电子邮件地址。
当我点击添加电子邮件地址时,会弹出一个执行ajax请求以获取地址字段的弹出窗口。 我的问题是我需要在创建地址之前创建联系人,因为我首先需要一个ContactID。有谁知道怎么办?。


我使用asp.net MVC 2和Entity Framework 4

2 个答案:

答案 0 :(得分:2)

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

另一个选择是打开一个弹出窗口,而不是打开一个JS Magic并在联系人姓名下面显示一个电子邮件字段(或者只是在联系人姓名下面有一个选项文本框。

所以你会看到:

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

他们点击+然后就是:

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

在提交时,您将拥有自己的联系人名称和一个很好的电子邮件列表。创建您的联系人,然后创建您的电子邮件。 =

答案 1 :(得分:0)

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

在这个简单的例子中,当用户关闭对话框以将信息保存到父表单上的隐藏字段时可能更有意义(如果您不希望它们显示,如果您确实希望它们显示,那么Ryan的建议是最好)然后在联系人提交上创建并保存两个记录。

如果这是“创建”,那么我真的不明白为什么你需要一个AJAX请求来获取值......