ASP.NET MVC多个模型在一个视图中
问题描述:
我有以下型号 Patient类: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; }
}
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; }
}
存储生命体征为每一个病人
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; }
}
光伏类
现在我的问题是,我一直没有能够显示一个从输入详细信息ILS。我想选择患者,不同的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());
}
如何解决此问题。我是MVC的新手,如果是Webforms,我会一直参与这个项目。
谢谢。
答
这个(你)的问题没有单一的答案(解决方案)。这取决于你想如何设计/构建/实现你的解决方案。 简单,粗暴的解决方案:只要有一个视图模型为具有作为他的财产类(产品类型)的wraper你做和工作解决这个问题,
public class FullPatientDetailsViewModel
{
public Patient { get; set;}
public List<PVSign> PatientPvSigns { get; set;} // Patien PV Signs
}
或者只使用一个PatientViewModel并加载了PVSigns异步与阿贾克斯。 没有简单的最佳解决方案,这完全取决于您想要以更大的图片实现什么目标。
您是否尝试过创建视图模型? –
为什么不把所有的模型封装成一个然后通过它? – jamiedanq