作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个学生时间表,这样他们就可以在一周内参加类(class)。而且我不知道应该如何构建我的 ViewModel。
我决定这样做:
class CourseTableViewModel
{
CourseTableHeaderViewModel[] Headers;
CourseTableRowViewModel[] Rows;
}
class CourseTableRowViewModel
{
int HourStart;
CourseTableCellViewModel[] Cells;
}
class CourseTableHeaderViewModel
{
DateTime Date;
}
class CourseTableCellViewModel
{
CourseViewModel[] Courses;//null if no course at this time
}
但对我来说,它似乎对我的 View 模型来说太重了。也许我应该只发送 CourseViewModel[],然后在我的 cshtml 上完成所有表/行/单元格工作。
viewmodel 真的应该像我的 View 吗?
编辑:我会将我的数据显示为时间表,其中星期几作为标题,一天中的每个小时都有一行。如果一门类(class)需要 2 小时,它将占据 2 行。每个类(class)的单元格上都会有一个“参加”或“取消”按钮。
PS:我知道 jquery fullcalendar,但我只是想在这里学习如何构建我的 View 模型。
最佳答案
一些 View 模型类太轻了; CourseTableHeaderViewModel。正如 Jon 所说,您需要考虑 UI 将显示此数据,但我不会将标题和行分开,而是有一个类(最好是域)代表您将需要的所有数据,然后 vi9ew 模型是这些类的列表:
public class Course {
public int Id {get; set; }
public DateTime StartTime {get; set; }
public string Name {get; set; }
. . .
. . .
}
public class CoursesViewModel {
public List<Course> Courses {get; set; }
public object SomeReferenceData {get; set; }
. . .
. . .
}
根据您希望如何显示数据,您可以使用 linq 对类(class)列表进行排序,然后将其分配到模型中。
关于asp.net-mvc-3 - 如何为时间表设计 View 模型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8788312/
我是一名优秀的程序员,十分优秀!