如果属性在编辑视图和mvc中的模型中已经有值,如何防止设置默认值

时间:2015-11-18 06:30:54

标签: asp.net-mvc-3

我正在编辑视图,我想设置 Create_Time Last_Update

的默认值

这是模型

public class TVSerialEpisode
{
    private DateTime _CurrentTime = DateTime.Now;
    [Key]
    public Int64 Video_ID { get; set; }
    public string Episode_Name { get; set; }
    public string Description { get; set; }
    public bool Is_Active { get; set; }
    public DateTime Create_Time
    {
        get { return _CurrentTime; }
        set { _CurrentTime = value; }
    }
    public DateTime Last_Update
    {
        get { return _CurrentTime; }
        set { _CurrentTime = value; }
    }
}

这是控制器

 public ActionResult EditEpisode(TVSerialEpisode tvepisode)
    {
        if (ModelState.IsValid)
        {
            tvContext.Entry(tvepisode).State = EntityState.Modified;                
            tvContext.SaveChanges();
            return RedirectToAction("ListAllEpisode"});
        }
        return View(tvepisode);
    }

我没有从视图中发送 Create_Time Last_Update 值。它与创建视图一起工作正常。但问题是,当我尝试编辑视图并保存时,它还会设置 Create_Time Last_Update 的默认值,但我只想 Last_Update < / strong>应该更新,而不是 Create_Time

1 个答案:

答案 0 :(得分:0)

public class TVSerialEpisode
{
    private DateTime _CurrentTime = DateTime.Now;
    private DateTime _lastUpdate = DateTime.Now;
    [Key]
    public Int64 Video_ID { get; set; }
    public string Episode_Name { get; set; }
    public string Description { get; set; }
    public bool Is_Active { get; set; }
    public DateTime Create_Time
    {
        get { return _CurrentTime; }
        set { _CurrentTime = value; }
    }
    public DateTime Last_Update
    {
        get { return _lastUpdate; }
        set { _lastUpdate = value; }
    }
}

这里我为 Last_Update 创建了另一个日期时间对象,并在编辑视图中设置了隐藏字段,现在它工作正常,问题是当模型类在控制器内部调用时,它设置了datetime对象的默认值_CurrentTime并且Create_Time和Last_Update都使用相同的对象值,现在我将它们分开。