私は ASP.NET MVC 3 を学習しており、外部キーによってリンクされた複数のモデルで構成される単一のフォームでビューを作成しようとしています。最終的な目標は、単一のフォームをすべてのデータベース テーブルに挿入することです。
問題は、右クリックしてフォームが cshtml ファイルで自動生成されないビューを作成する理由がわからないことです。自動生成されたコードは、相互にリンクする多くのテーブルと、検証して挿入する必要がある多くのフィールドがあるため、非常に役立ちます。フォームを自動生成できない場合、これを行うための最も効率的/エレガントな方法は何ですか?
これが私が持っているものの単純化です。
モデル:
class Customer
{
[Key]
public UInt64 CustomerId { get; set; }
[Required(ErrorMessage = "Name is required.")]
[Display(Name = "Customer Name")]
[MaxLength(50)]
public string FullName { get; set; }
}
class CustomerAdditionalDetails1
{
[ForeignKey("Customer")]
public UInt64 CustomerId { get; set; }
[Required(ErrorMessage = "This info is required.")]
[Display(Name = "Customer Information")]
[MaxLength(50)]
public string SomeInfo { get; set; }
}
class CustomerAdditionalDetails2
{ // same foreign key as CustomerAddtionalDetails1, but with different properties
}
class CustomerAdditionalDetails3
{ // same foreign key as CustomerAddtionalDetails1, but with different properties
}
...
public class CustomerModel
{
public Customer Customer { get; set; }
public CustomerAdditionalDetails1 CustomerAdditionalDetails1 { get; set; }
public CustomerAdditionalDetails2 CustomerAdditionalDetails2 { get; set; }
public CustomerAdditionalDetails3 CustomerAdditionalDetails3 { get; set; }
...
}
コントローラ:
public ActionResult Submit()
{
return View();
}
[HttpPost]
public ActionResult Submit(CustomerModel customer)
{
return View();
}
助けてください!