rem*_*rel 18 view asp.net-mvc-3
在我看来,我有这条线
@(Html.DisplayFor(m => m.DaysOfWeek, "_CourseTableDayOfWeek"))
Run Code Online (Sandbox Code Playgroud)
这里m.DaysOfWeek是一个IEnumerable<DateTime>.
有_CourseTableDayOfWeek.cshtml的内容:
@model DateTime
@{
ViewBag.Title = "CourseTableDayOfWeek";
}
<th>
@System.Globalization.CultureInfo.CurrentCulture.DateTimeFormat.DayNames[(int) Model.DayOfWeek]
<span class="dateString">Model.ToString("G")</span>
</th>
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
传递到字典中的模型项的类型为'
System.Collections.Generic.List`1[System.DateTime]',但此字典需要类型为'System.DateTime' 的模型项.
如果我参考以下帖子:
本DisplayFor应通过的IEnumerable被循环并为每个项目显示模板,不应该吗?
Dar*_*rov 24
它不是循环的,因为您已将显示模板的名称指定为DisplayForhelper(_CourseTableDayOfWeek)的第二个参数.
只有当你依赖惯例时它才会循环
@Html.DisplayFor(m => m.DaysOfWeek)
Run Code Online (Sandbox Code Playgroud)
然后在里面~/Views/Shared/DisplayTemplates/DateTime.cshtml:
@model DateTime
@{
ViewBag.Title = "CourseTableDayOfWeek";
}
<th>
@System.Globalization.CultureInfo.CurrentCulture.DateTimeFormat.DayNames[(int) Model.DayOfWeek]
<span class="dateString">Model.ToString("G")</span>
</th>
Run Code Online (Sandbox Code Playgroud)
为显示模板指定自定义名称(作为DisplayFor助手的第二个参数或作为[UIHint]属性)后,它将不再循环访问集合属性,模板将仅IEnumerable<T>作为模型传递.
令人困惑,但事实就是如此.我也不喜欢它.
| 归档时间: |
|
| 查看次数: |
3365 次 |
| 最近记录: |