如何在一个帖子中保存同一属性成员中的多个值?

时间:2014-06-30 14:48:52

标签: c# asp.net-mvc asp.net-mvc-4

public class Customer
{
  public Customer()
  {
    ContactNumbers = new HashSet<ContactNumber>();
  }

  public int Id { get; set; }
  public string Name { get; set; }

  public virtual ICollection<ContactNumber> ContactNumbers { get; set; }
  -- remove some code for brevity --
}

public class ContactNumber
{
  public int Id { get; set; }
  public int CustomerId { get; set; }
  public string Number { get; set; }

  public virtual Customer Customer { get; set; }
}

您好。我有这种情况,客户有很多联系电话。所以我所做的就是create view。我用javascript来操纵textbox联系号码。像...这样的东西。

$(".add-contact-trigger").click(function() {
   $(".contact-number-container").append("<div><input type=\"text\" /></div>");
});

因此,每次按下按钮时,都会为textbox生成contact number

现在,我的问题是..如何在一个帖子中提交表格,说他们有多个联系电话?我只能为每个帖子做一个联系电话。有没有办法用一个帖子保存所有输入的联系号码?

非常感谢任何帮助。谢谢!

1 个答案:

答案 0 :(得分:1)

由于您使用javascript生成字段,因此要在控制器中读取电话号码,您需要使用以下语法。

   <input type="text" name="ContactNumbers[0].Number">
   <input type="text" name="ContactNumbers[1].Number">
   <input type="text" name="ContactNumbers[2].Number">

它会为您提供IdCustomerIdCustomer的空值数字。如果您希望这些值也从视图中返回,您可以使用隐藏字段,您的javacript将把它们输入隐藏字段值

 <input type="hidden" name="ContactNumbers[0].CustomerId" value="1234" >

Conventional way to handle this problem is described here.