私は3つのテーブルを持っています:
TableMaster <-- TableDetails1 (一対多関係)
TableMaster <-- TableDetails2
ASP.NET MVC 3 Razor を使用して単一のページにこれを実装するにはどうすればよいですか?
フォームごとにマルチフォームとバリデーションを使えばいいと思うのですが、やり方がわかりません。
私は3つのテーブルを持っています:
TableMaster <-- TableDetails1 (一対多関係)
TableMaster <-- TableDetails2
ASP.NET MVC 3 Razor を使用して単一のページにこれを実装するにはどうすればよいですか?
フォームごとにマルチフォームとバリデーションを使えばいいと思うのですが、やり方がわかりません。
もっと具体的にお願いできますか?
データを収集するだけで、フォーム全体が 1 回だけ送信される場合は、次のようなモデルを使用します。
public class MyBigForm
{
public MyForm1 Form1 { get; set; }
public MyForm2 Form2 { get; set; }
public MyForm3 Form3 { get; set; }
}
各クラス (MyForm1-3) は、独自の検証を持つことができます。
しかし、Ajax などを使用して詳細フォームをロードしている場合、MVC ですべてのフォームを一度に検証することは簡単ではありません。次に、カスタム jquery 検証を ajax 応答 (データ受信後) に書き込んでから、Controller に書き込む必要があります。
複数のフォームは必要ありません。あなたの質問を誤解した場合は申し訳ありません
@model TableMaster
@using (Html.BeginForm())
{
@Html.TextBoxFor(model => model.Name)
@foreach(int i = 0; i < Model.TableDetails1.Count; i++)
{
@Html.TextBoxFor(model => Model.TableDetails1[i].Name)
}
}