我想在ASP MVC视图中给出一个字段当前日期的默认值,但我无法弄清楚如何在View代码中执行此操作。我需要允许这个字段是可更新的,但是,因为它不会总是最新的日期。有什么建议?
<div class="M-editor-label">
Effective Date
</div>
<div class="M-editor-field">
@Html.EditorFor(model => model.EffectiveDate)
@Html.ValidationMessageFor(model => model.EffectiveDate)
</div>
修改
我试图在模型中给这个字段一个默认值,如此
private DateTime? effectiveDate = DateTime.Now;
public Nullable<System.DateTime> EffectiveDate
{
get { return DateTime.Now; }
set { effectiveDate = value; }
}
但是get
属性给出了以下错误消息:
Monet.Models.AgentTransmission.EffectiveDate.get must declare a body because it is not marked abstract extern or partial
^(Monet是项目的名称,AgentTransmission是我正在使用的当前模型的名称,其中EffectiveDate是一个属性。)
第二次编辑
根据下面其中一个答案中的建议,我将构造函数设置为这样,但是在渲染View时,这仍然会在字段中放置一个空白值。
public AgentTransmission()
{
EffectiveDate = DateTime.Now;
}
第三次编辑
修复了get
的上述问题,到目前为止,我在控制器中发布了我的全部内容。
public AgentTransmission()
{
EffectiveDate = DateTime.Today;
this.AgencyStat1 = new HashSet<AgencyStat>();
}
//Have tried with an without this and got the same results
private DateTime? effectiveDate = DateTime.Today;
public Nullable<System.DateTime> EffectiveDate
{
get { return effectiveDate; }
set { effectiveDate = value; }
}
答案 0 :(得分:0)
我会在模型类的构造函数中设置默认值。像这样:
class YourClass {
public DateTime EffectiveDate {get;set;}
public YourClass() {
EffectiveDate = DateTime.Today;
}
}
答案 1 :(得分:0)
我解决了这个问题,正如其他答案所建议的那样,通过在构造函数中创建一个默认值,如此
public AgentTransmission()
{
EffectiveDate = DateTime.Today;
this.AgencyStat1 = new HashSet<AgencyStat>();
}
private DateTime? effectiveDate;
public Nullable<System.DateTime> EffectiveDate
{
get { return effectiveDate; }
set { effectiveDate = value; }
}
将此代码添加到构造函数中的特定页面以初始化新对象;
public ActionResult Create()
{
return View(new AgentTransmission());
}