asp.net-mvc – 在MVC4中为ViewModel设置默认值的适当方法?
发布时间:2020-12-15 20:50:19 所属栏目:asp.Net 来源:网络整理
导读:我有一个包含以下内容的viewModel: public class CreateCardViewModel { [HiddenInput(DisplayValue = false)] public int SetId { get; set; } [Required] public IListSide Sides { get; set; } [Required] public int Stage { get; set; } [Required] [D
我有一个包含以下内容的viewModel:
public class CreateCardViewModel { [HiddenInput(DisplayValue = false)] public int SetId { get; set; } [Required] public IList<Side> Sides { get; set; } [Required] public int Stage { get; set; } [Required] [DataType(DataType.Date)] [HiddenInput(DisplayValue = false)] public DateTime DateCreated { get; set; } [Required] public bool IsReady { get; set; } } 模型如下: public class Card { public virtual int CardId { get; set; } // belongs to a Set public virtual int SetId { get; set; } public virtual Set Set { get; set; } // has Sides public virtual IList<Side> Sides { get; set; } // is in a certain Stage public virtual int Stage { get; set; } // is ready to study public virtual bool IsReady { get; set; } public virtual DateTime DateCreated { get; set; } } 如何为DateCreated设置默认值? 如果我想在创建卡片时在侧面插入空白边,该方法会改变吗? 解决方法
您可以在构造函数中设置默认值:
public CreateCardViewModel() { DateCreated = DateTime.Now; Sides = new List<Side> { new Side() }; } 警告:从单元测试角度来看使用DateTime.Now存在问题.如果您正在对ViewModel创建进行单元测试,并且需要能够验证创建的日期是否设置为已知值,则可以查看为时间创建单独的概念,如Ayende’s blog中所述.您基本上创建了一个静态函数,SystemTime,您可以在测试中将其设置为已知值.如果未设置,则默认为DateTime.Now: public static class SystemTime { public static Func<DateTime> Now = () => DateTime.Now; } 然后您的构造函数代码变为: public CreateCardViewModel() { DateCreated = SystemTime.Now(); Sides = new List<Side> { new Side() }; } 如果您需要将时间实际设置为已知值,请执行以下操作: SystemTime.Now = () => new DateTime(2013,2,11,17,41,12); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net – Response.TrySkipIisCustomErrors不工作
- asp.net – 在VS2012中使用动态数据实体网站时出错
- asp.net-mvc-3 – ASP.NET MVC 3 MSChart错误:此数据系列只
- asp.net – System.Linq.Dynamic不支持OrderByDescending(“
- 在ASP.NET MVC视图中渲染HTML文件?
- asp.net-mvc – SignalR – 使用Windows和匿名身份验证时,连
- asp.net-mvc-4 – 如何将自定义css / js添加到MVC4项目进行
- asp.net – tag-helpers无法正确生成我的网址
- ASP.Net 5 RC2配置部分绑定
- asp.net-mvc – ASP.Net MVC:Html.Display()用于Collectio
推荐文章
站长推荐
- ASP.NET Core的路由[5]:内联路由约束的检验
- asp.net – 测试ControllerFactory(预启动初始化
- asp.net-mvc – 使用jQuery.get时可以指定相对UR
- asp.net-mvc-3 – 定义WebActivator.PreApplicat
- asp.net-mvc – 使用ASP.NET MVC 3本地化非数据注
- 如何通过给定的项目值显示Motobit Multi.Diction
- asp.net-mvc – MVC 4 ModelBinder
- asp.net-mvc – 什么可以导致ViewData.ModelStat
- ASP.NET:隐藏gridview中的列
- asp.net-mvc – 使用Knockout JS MVC服务器端模型
热点阅读