asp.net-mvc – 在MVC4中为ViewModel设置默认值的适当方法?
发布时间:2020-09-19 13:36:42 所属栏目:asp.Net 来源:互联网
导读:我有一个包含以下内容的viewModel: public class CreateCardViewModel { [HiddenInput(DisplayValue = false)] public int SetId { get; set; } [Required] public IListSide Sides { g
|
我有一个包含以下内容的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); (编辑:长春站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- VS 2013 RC中缺少ASP.NET Web窗体脚手架功能
- asp.net-ajax – ASP.Net AJAX UpdatePanel无法触发Selecte
- asp.net-mvc – 使用CORS在WebAPI中将text / plain作为复杂
- 实体框架 – 使用EF和WebAPI,如何返回一个ViewModel并支持I
- ASP.NET UpdatePanel和Javascript __dopostback
- Asp.net 文件上传类(取得文件后缀名,保存文件,加入文字水印
- asp.net-web-api – 从ASP.NET Web API ASP.NET Core 2返回
- asp.net-mvc – DotNetOpenAuth在ASP.NET MVC中的OAuth
- asp.net – 为什么Global.asax事件在我的ASP.NET网站没有触
- 我应该在ASP.NET MVC中构建我的下一个Web应用程序吗?
推荐文章
站长推荐
- asp.net-mvc – ControllerActionInvoker
- asp.net-mvc – asp.net mvc – string或int的路
- asp.net-ajax – ASP.Net AJAX UpdatePanel无法触
- asp.net-mvc-3 – 如何在页面提交ASP.Net MVC时捕
- asp.net-mvc – 是否可以在基于路由的MVC4中使用
- NHibernate中关于Inverse的理解和使用
- asp.net – 使用app_offline.htm使应用程序脱机,
- iis-7.5 – 使用虚拟目录/应用程序在IIS中托管AS
- 如何设置特定于ASP.NET请求的log4net上下文属性?
- asp.net-mvc-2 – 如何使用Castle Windsor在MVC中
热点阅读
