2016-06-23 7 views
2

2つのモデルからのデータを表示するビュー(EditView)があります。このために私はMVCビューに期待されるデータが含まれていません

public class MergeModel 
{ 
    public Reservation Reservation { get; set; } 
    public ViewTrain ViewTrain { get; set; } 

} 

のように一つのクラスで2機種を入れて、ビューに私が@model MergeModelとして最初の行を置きます。しかし、私の問題はViewTrainモデルのデータを予約番号のデータではなくEditViewに送信するだけなので、ビューのようなエラーを表示するにはMergeModelが表示されますが、ViewTrainモデルを送信しています。では、これを解決するために今私は何をすべきですか? 詳細:trainId、TrainName、StartPlace、EndPlaceを含むViewTrainモデルがあり、ReserveId、trainId、TrainName、StartPlace、EndPlace、NeedNoOfSeatsを含むReservationモデルがあります。 startPlaceとEndPlaceを入力すると、利用可能な関連する列車が表示されます。特定の電車の詳細について、selectオプションをクリックすると、trainId、TrainName、StartPlace、endPlaceなどの詳細がすべて自動入力され、NeedNoOfSeatsテキストボックスが座席数を入力できるようになるはずですが、Imは表示されませんこれを行うことができます

+1

あなたはより多くの、おそらく含ま少し詳しく説明する必要があるかもしれませんを返す必要がありますいくつかのサンプルコード。このような質問は通常下降して表示されます –

+0

アクションでビューモデルをどのように設定していますか? – Richard

+0

コントローラーで間違ったモデルをビューに戻しています。コントローラのアクションコードを質問に追加すると、何を変更するかがわかりやすくなります。 –

答えて

0

クラスReservationのように見えますが、そのクラスのインスタンスを作成することがあります。このよう

-

new MergeModel{ new Reservation(), new ViewTrain() }; 

は、詳細を投稿していない場合、これは、お役に立てば幸いです。あなたは、アクションメソッドではMergeModelクラス

public MergeModel() 
    { 
     Reservation = new Reservation(); 
     ViewTrain = new ViewTrain(); 
    } 

2)にコンストラクタメソッドを追加する必要があります

1

1)あなたはMergModelオブジェクト

MergeModel model=new MergeModel(); 
//fill data to model 
return View(model); 
+0

私のアクションメソッドは、このようなものです------> [HttpGet] public ActionResult EditReservation(int TrainId){TrainBusinessLayer trainBusinessLayer = new TrainBusinessLayer(); ViewTrain viewtrain = trainBusinessLayer.ViewTrains.Single(x => x.TrainId == TrainId);ビューを戻す(viewtrain); MergeModelオブジェクトを返すにはどうすればよいですか? –

+0

あなたの復帰ラインを削除し、以下を追加してください。 – Mehmet

+0

MergeModelモデル=新しいMergeModel(); model.ViewTrain = viewtrain; 戻るビュー(モデル); – Mehmet

関連する問題