私が得ていない基本的なMVCの部分があるようです。状況は次のとおりです。
3 つの部分ビュー (1 つはテーブル、2 つはそれぞれ 1 つのフォーム) を持つビュー (Index.aspx) があります。
4 つのビューはすべて厳密に型指定されています。親 (index.aspx) には、モデルとして部分ビューに渡される 3 つのプロパティを含むモデルがあります。
部分ビュー (ユーザーがテーブルの新しいレコードを作成できるフォーム) のいずれかのモデルの 1 つには、フォームが送信されたときに検証を有効にするための DataAnnotations があります。2 つのフォーム フィールドは RangeAttribute[Range(1000,9999)]
を持つ整数で、2 つのフォーム フィールドは DisplayFormatAttribute を持つ DateTime です。[DisplayFormat(DataFormatString = "{0:dd/MMM/yyyy}")]
私の部分的なビューは、次のように入力フィールドに Html.EditorFor() ヘルパーを使用します。
<%: Html.EditorFor<MyType, DateTime>(m => m.StartDate, new { @class = "specialclass" })%>
私のアクション メソッドでは、親のビュー モデルを作成し、パーシャル (レコードが入力されたテーブルを除く) の空のビュー モデルも追加し、それを return View() ステートメントに渡します。テーブルにデータが入力されることを除いて、フォーム フィールドは空である必要がありますが、そうではありません。
では、ビューに対して HTTP get を実行すると、フォーム フィールドの 2 つの整数フィールドに 0 が入力され、2 つの日付フィールドに最小日付値が入力されるのはなぜですか?
私は何を間違っていますか/何が得られませんか?
私の質問は次のとおりだと思います:フォームである強く型付けされたユーザーコントロールがある場合、親ビューに対してhttp getを実行するときに、それをどのように「処理」する必要がありますか? モデルを渡す必要がありますよね?