在ASP MVC3 View中设置'editor-field'值

时间:2013-02-07 16:32:38

标签: asp.net-mvc asp.net-mvc-3

我想在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; }
    }

2 个答案:

答案 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());
    }