似乎有一些我没有得到的基本 MVC 部分。情况如下:
我的 View (Index.aspx) 具有三个部分视图(一个带有表格,两个带有一个表格)。
所有四个视图都是强类型的;父级 (index.aspx) 有一个模型,其中包含三个作为模型传递给局部视图的属性。
部分视图之一的模型之一(允许用户为表创建新记录的表单)具有 DataAnnotations,以便在提交表单时启用验证。两个表单字段是带有 RangeAttribute 的整数[Range(1000,9999)]
,两个是带有 DisplayFormatAttribute 的 DateTime[DisplayFormat(DataFormatString = "{0:dd/MMM/yyyy}")]
我的部分视图对输入字段使用 Html.EditorFor() 帮助器,如下所示:
<%: Html.EditorFor<MyType, DateTime>(m => m.StartDate, new { @class = "specialclass" })%>
在我的 Action 方法中,我为我的父级创建了一个视图模型,并为部分添加了空视图模型(除了填充了记录的表),然后我将它传递给我的 return View() 语句。我排除了表格将被填充,但表单字段应该是空的,但它们不是。
那么,当我为视图执行 HTTP 获取时,为什么我的表单字段填充了两个整数字段的 0 和两个日期字段的最小日期值?
我做错了什么/我没有得到什么?
我想我的问题是:如果我有一个强类型的用户控件,它是一个表单,当我为父视图执行 http get 时,应该如何“处理”它?我需要给它一个模型,对吧?