Asp.net と MVC 4 を使用してホテル予約 Web サイトを作成しています。連絡先のリストを持つ予約という名前のクラスがあります。作成ビューで連絡先を動的に作成したい。(連絡先の数 = 大人 + 子供、予約ビューの作成で決定されます) 連絡先情報をコントローラーに投稿するにはどうすればよいですか?
public partial class Reservation
{
public int Id { get; set; }
public int RoomType_Id { get; set; }
public System.DateTime FromDate { get; set; }
public System.DateTime ToDate { get; set; }
public byte Adults { get; set; }
public byte Kids { get; set; }
public decimal Price { get; set; }
public int User_Id { get; set; }
public int State_Id { get; set; }
public virtual ReservationState ReservationState { get; set; }
public virtual RoomType RoomType { get; set; }
public virtual User User { get; set; }
public virtual ICollection<Transaction> Transactions { get; set; }
public virtual ICollection<Contact> Contacts { get; set; }
}
連絡先の最大数を設定する必要があります (たとえば 5 で、次のように記述しますか?
[HttpPost]
public ActionResult Create(Reservation reservation,Contact Adult1,Contact Adult2, Contact Adult3, Contact Adult4, Contact Adult5, Contact Kid1,Contact Kid2, Contact Kid3)
{
if(reservation.Adults>0)
reservation.Contacts.Add(Adult1);
if(reservation.Adults>1)
reservation.Contacts.Add(Adult2);
...
if (ModelState.IsValid)
{
_db.Reservations.Add(reservation);
_db.SaveChanges();
return RedirectToAction("Index");
}
}
とても汚いです。もっと良い方法はありますか?連絡先のリストを渡すことはできますか?