2016-04-22 28 views
1

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; } 

} 
のためのバイタルサインを格納PVクラス

今私が持っている問題は、私がデタを入力するための表示を得ることができなかったことですils。患者を選択して、別のバイタルサインが表示され、必要なものを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の場合は、このプロジェクトを完了していました。

ありがとうございます。

+3

ビューモデルの作成を試しましたか? –

+0

あなたのすべてのモデルを1つにカプセル化して渡すのはなぜですか? – jamiedanq

答えて

9

この(あなたの)問題に対する単一の答え(解決策)はありません。あなたのソリューションの設計/構築/達成方法によって異なります。 シンプル、ブルート解決策:ちょうど、あなたが作られ、その周りの仕事

public class FullPatientDetailsViewModel 
{ 
    public Patient { get; set;} 
    public List<PVSign> PatientPvSigns { get; set;} // Patien PV Signs 
} 

を彼のプロパティとしてクラス(モデル)を持っているwraperとしてビューモデルを持っているかだけでPatientViewModelを使用して、と非同期(async)彼のPVSignsをロードAjax。 シンプルな最適解はありません。より大きな画像として何を達成したいかによって異なります。

0

私は同様の質問hereに答えました。 Alexandruの言葉通り、ViewModelの中にモデルをラップするのが最も簡単で最も簡単な方法です。これを実装する他の方法についてはhereを読むことができます。

+0

ありがとうございます。あなたのポインタはそれをどう扱うか教えてくれました。 –

関連する問題