似乎有一些基本的MVC部分我没有得到。情况如下:
我有View(Index.aspx)有三个部分视图(一个带有一个表,两个带有一个表单)。
所有四种观点都是强类型的; parent(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方法中,我为父级创建了一个View模型,并为partials添加了空视图模型(除了用记录填充的表),然后我将它传递给我的返回View()语句。 我除了表格将被填充,但表格字段应该是空的,但它们不是。
那么,为什么我的表单字段在两个整数字段中填充0,在为视图执行HTTP get时,为两个日期字段填充最小日期值?
我做错了什么/我得不到什么?
我想我的问题是:如果我有一个强类型的用户控件,这是一个表单,当我为父视图执行http get时应该如何“处理”?我需要传递一个模型,对吧?
答案 0 :(得分:0)
无论您是否设置了值,系统都会尝试显示它们。由于int不可为空,因此在未初始化时往往返回0,因此一个是明确的。我假设的DateTime,因为它将为null,默认为DateTime.Min,因为您已指定您希望通过字段和格式设置数据。