【发布时间】:2013-10-04 15:09:46
【问题描述】:
我对这两个操作都有一个创建/编辑对话框。
当我在编辑模式下打开对话框并进行更改时,UI 中的选择将保存到数据库中。
当我在创建模式下打开对话框时,我不必加载 UI 状态,因为我的 UI 中只有默认值。
1.) 现在我问自己是应该通过我的 DTO 从域服务中获取 UI 的默认值,还是应该在我的 ViewModels 中为 UI 定义这些默认值?
2.) 每种方法的优势是什么?
更新
public SchoolyearCreateRequest CreateSchoolyear()
{
var request = new SchoolyearCreateRequest();
request.MaxPeriodsPerWeek = TimeTable.GetMaxPeriodsPerWeek();
request.RotationsPerWeek = TimeTable.GetRotationsPerWeek();
request.FirstDaysOfAWeek = TimeTable.GetFirstDaysOfAWeek();
request.FirstDayOfWeek = TimeTable.GetFirstDaysOfAWeek().First();
request.RotationPerWeek = TimeTable.GetRotationsPerWeek().First();
request.MaxPeriodPerWeek = TimeTable.GetMaxPeriodsPerWeek().First();
request.ValidStartDate = DateTime.Today;
request.ValidEndDate = (Nullable<DateTime>)null;
return request;
}
3 个默认值 (.First()) 取自 3 个 TimeTable.Get 方法,这不是发送到客户端的冗余数据。
您仍然会以这种方式定义它而不是在客户端视图模型中定义它吗?
更新
namespace TLP.MODEL.DTO
{
public class SchoolyearCreateRequest
{
public IEnumerable<DayOfWeek> FirstDaysOfAWeek { get; set; }
public IEnumerable<int> MaxPeriodsPerWeek { get; set; }
public IEnumerable<int> RotationsPerWeek { get; set; }
public DateTime ValidStartDate { get; set; }
public DateTime? ValidEndDate { get; set; }
public DayOfWeek FirstDayOfWeek { get; set; }
public int MaxPeriodPerWeek { get; set; }
public int RotationPerWeek { get; set; }
}
}
【问题讨论】:
-
你能发布 SchoolyearCreateRequest 类吗,只是为了让我看看类型以帮助我更好地理解。
-
@Marc 是的 8 小时后我在家 b4 我的笔记本电脑 :)
-
@Marc Done 更新...
标签: asp.net-mvc mvvm viewmodel single-page-application