1

我在我的模型类中定义了以下计算属性,并将其定义为只有获取(没有设置):-

public partial class Visit : IValidatableObject
{
    public int AgeInYears
    {
        get
        {
            int years = Date.Year - Patient.DateOfBirth.Year;

            if (Date.Month < Patient.DateOfBirth.Month || (Date.Month == Patient.DateOfBirth.Month && Date.Day < Patient.DateOfBirth.Day))
            { 
                years--; 
            }
            return years;
        }
    }
}

但是,如果我尝试添加新访问,则会在

int years = Date.Year - Patient.DateOfBirth.Year;

但是我的问题是为什么 AgeInYears 属性在我创建一个新的访问对象时被执行,尽管我将它定义为get;out set;,所以它应该只在我显式调用它时执行?

::::Updated:::: 导致错误的发布操作方法如下所示:-

[HttpPost]
public ActionResult Create(Visit visit)
{
    if (ModelState.IsValid)
    {
        if (Roles.IsUserInRole(visit.DoctorID, "Doctor"))
        {
            visit.StatusID = repository.GetVisitStatusByDescription("Assinged");
            visit.CreatedBy = User.Identity.Name;
            visit.Date = DateTime.Now;

            repository.AddVisit(visit);
            repository.Save();
            return RedirectToAction("Index");  
        }
        else
        {
            return View("NotFound");
        }
    }
}

::::第二次更新:::: 我的 Get 操作方法如下所示:-

public ActionResult Create(int patientid)
{
    Visit visit = new Visit();
    visit.PatientID = patientid;
    visit.CreatedBy = User.Identity.Name;
    visit.Date = DateTime.Now;

    return View(visit);
}
4

0 回答 0