ASP.NET MVC在一个视图中有多个模型

Ani*_*fia 1 c# model-view-controller asp.net-mvc

我有以下型号患者类:

public class Patient
{
    public int PatientID { get; set; }

    public virtual Salutation salutation { get; set; }
    public int SalutationID { get; set; }
    public string Surname { get; set; }
    public string Firstname { get; set; }
    [Display(Name = "Date of Birth")]
    [DisplayFormat(DataFormatString="{0:d}", ApplyFormatInEditMode=true)]
    public DateTime DOB { get; set; }
    public string RegNo { get; set; }
    public DateTime RegDate { get; set; }
    public string Occupation { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

VatalSigns类

public class VitalSign
{
    public int VitalSignID { get; set; }
    public string Sign { get; set; }
    [Display(Name = "Lower Limit")]
    public int? LowerHold { get; set; }
    [Display(Name = "Upper Limit")]
    public int? UpperHold { get; set; }
    [Display(Name = "Unit Of Measurment")]
    public string Units { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

为每位患者存储VitalSigns的PV类

public class PVSign
{

    public long PVSignId { get; set; }
    [Display(Name = "Patient")]
    public int PatientID { get; set; }
    public VitalSign VitalSigns { get; set; }
    //public IList<VitalSign> VitalSigns { get; set; }
    public Patient patient { get; set; }

}
Run Code Online (Sandbox Code Playgroud)

现在我遇到的问题是我无法显示一个来输入详细信息.我想选择患者,将出现不同的Vitals标志,我将把我需要的标志保存到PVSign表中.

我已经厌倦了网上的各种样品.您可以从下面的代码中看到,这是索引存根:

public ActionResult Index()
{
    var pVSigns = db.PVSigns.Include(p => p.patient).Include(p => p.PVSignId).Include(p => p.VitalSigns);
    //var pVSigns = from o in db.Patients join o2 in db.PVSigns
    //List<object> myModel = new List<object>();
    //myModel.Add(db.Patients.ToList());
    //myModel.Add(db.VitalSigns.ToList());

    //return View(myModel);
    return View(pVSigns.ToList());
}
Run Code Online (Sandbox Code Playgroud)

如何解决这个问题.我是MVC的新手,如果是Webforms,我会完成这个项目.

谢谢.

Ale*_*ere 9

这(你)的问题没有单一的答案(解决方案).这取决于您希望如何设计/构建/实现您的解决方案.简单,粗野的解决方案:只需将视图模型作为一个包装器,将您所创建的类(模型)作为其属性,并解决此问题,

public class FullPatientDetailsViewModel
{
    public Patient { get; set;}
    public List<PVSign> PatientPvSigns { get; set;} // Patien PV Signs
}
Run Code Online (Sandbox Code Playgroud)

或者只使用PatientViewModel并使用Ajax加载他的PVSigns异步.没有简单的最佳解决方案,这完全取决于您想要实现更大的目标.