0

我对此非常陌生,并且正在为一份不应该涉及编程的工作进行编程,所以请保持温和。:)

这个应用程序在 MVC 3 中,我的代码可以很好地使其他两个日期依赖于第一个。但是,第一个日期可以为空。在我添加此代码之前,您可以在不填写该字段的情况下创建一个项目。现在,如果该字段留空,它就会爆炸。我究竟做错了什么?

 [HttpPost]
    public ActionResult Create(Procedure procedure)
    {
        if (ModelState.IsValid)
        {
            context.Procedures.Add(procedure);
            if (procedure.Effective != DateTime.MinValue)
            {
                procedure.ScheduledReview = procedure.Effective.Value.AddMonths(-1);
                procedure.UserReview = procedure.Effective.Value.AddMonths(-3);
            }
            context.SaveChanges();
            return RedirectToAction("Index");  
        }

        ViewBag.PossibleProTypes = context.ProTypes;
        ViewBag.PossibleStatus = context.Status;
        ViewBag.PossiblePendingActions = context.PendingActions;
        ViewBag.PossibleOffices = context.Offices;
        return View(procedure);
    }
4

1 回答 1

0

尝试这个:

   if (procedure.HasValue)
    {
        procedure.ScheduledReview = procedure.Effective.Value.AddMonths(-1);
        procedure.UserReview = procedure.Effective.Value.AddMonths(-3);
    }

空日期时间不等于 DateTime.MinValue,因此您的if表达式为真,然后当您尝试使用分配值时可能会抛出 NullReferenceExceptionprocedure.Effective.Value

于 2012-07-02T17:07:44.657 回答