0
2つの別々のViewDatas( "R_Outout"と "M_Output")で2つの異なるSQL検索のデータがあります。それぞれにRoom_idという列があります。異なるビューデータの結果と一致する方法
私がビューで実行したいのは、これらの値を照会し、一致する場合は別の列の対応する結果を表示することです。現時点で
、私は(ストレートViewDataをM-出力から)この出力を得る
Room ID Date from Date to repair ID notes
5 05/01/2017 06/01/2017 5
20 01/11/2016 15/11/2016 5
14 27/10/2016 15/11/2016 3
など
私は何を取得しようとしていることで部屋番号から対応する部屋番号であります2番目のビューデータ出力(r_output)。
Room Date from Date to repair ID notes
101 05/01/2017 06/01/2017 5
220 01/11/2016 15/11/2016 5
45 27/10/2016 15/11/2016 3
アイブ氏は、私が出ることは奇数部屋番号の代わりにidを持つ、テーブルの複数のコピーである。この
@foreach (var item in ViewData["M_Output"] as IEnumerable<app.Models.SP_RESULTS.MT>)
{
<tr>
@foreach (var inneritem in ViewData["R_Output"] as IEnumerable<app.Models.SP_RESULTS.rm>)
{
<td>
@if (inneritem.room_id == item.room_id)
{
@inneritem.room_no
}
</td>
<td>
@item.date_from.ToString("dd/MM/yyyy")
</td>
<td>
@item.date_to.ToString("dd/MM/yyyy")
</td>
etc...
}
</tr>
}
を試してみました。 私は自分のForeachとIfを間違った場所に持っているかもしれないと理解していますが、どこにあるべきかを理解するのに問題があります。
誰かが私を助けることができますか?
の私は、あなたがM_Output
コレクションからすべての行を印刷するように、この
を通して、あなたのアクションメソッド
とビューで、ちょうどループで今、この
のようなビューモデルを持っていると仮定すると
(部屋のID値に基づいて)両方のセットから?具体的に期待される出力は? – Shyju
こんにちは@Shyjuなので、M_output.Room_id = r_Output.room_idの場合は、最初の
答えて
が見える取得し、一致するレコードは
R_Outout
コレクションに存在する場合それからRoomNo値を出力したいとします。これを行うには、LINQ左結合式を使用できます。上記のLINQ LEFTで
発現に参加する、私は
RoomId
、RoomNo
とFromDate
プロパティを持つ匿名オブジェクトに結果を投影しています。その構造を持ち、それを投影するビューモデルを作成することができます。私は自分の意見に多くのC#コードを入れたいとは思わない。私は私の意見をもっとHTMLyに保ち、私のC#コードを最小限に保つのが好きです。私は、アクションメソッドの中にジョインコードを置き、希望の結果だけをビューに渡します。私は必要なプロパティ(上記の段落で述べた)を持つビューモデルを作成し、そのビューモデルのリストをlinq式から作成し、ビューモデルを使用する代わりにそのビューに渡します。あなたはあなたが共通たいモデル
出典
2017-10-14 14:53:05 Shyju
こんにちは、次の行にエラーが表示されます: 'm.room_idのrmSetのjoin rはgjのr.room_idと同じです' - VSはroom_idのままです(両方)がViewdataに存在しません。 、 '@foreach(結果内のvar item)' - foreach文は動作できません。 –
ViewDataアイテムをList 'と' 'のリストにキャストしましたか? 'mtSet'と' rsSet'のタイプはそれらのエンティティのリストでなければなりません。これは、ビューのコードの最初の2行でやっていることです。 –
Shyju
こんにちは、はい。上記のコードを手紙に従った。エラーは "IEnumerableには" room_id "の定義はなく、タイプ" IEnumerable の最初の引数を受け入れる拡張メソッド "room_id"は見つかりませんでした。 –
関連する問題