2017-09-05 10 views
-2

私の話は:私はasp.net MVCプロジェクトで働いています。私はこのようreprezented、2つのモデルのリストを持っている:辞書をcshtmlテーブルにバインドする適切な方法

private Dictionary<string, List<Tuple<string, string>>> _foldersName_NoRecords = new Dictionary<string, List<Tuple<string, string>>>(); 
private List<string> _totalNoOfDates = new List<string>(); 

を私は(私は完全に行くの塗りつぶしをデバッグした後に見てきたように)それらのリストを記入した後、私はビューでそれらにアクセスするためのViewBagに渡します。問題は、リストが記入された順序で表示されず、オーバーライドされるということです。 ビューからのコードがある:例えば

<thead> 
      <tr> 
       <th> 
        Folder Name 
        @foreach(var date in @ViewBag.dateList) 
        { 
         <td>@date</td> 
        } 
       </th> 
      </tr> 
     </thead> 
     <tbody> 
      @foreach(var tupleKey in @ViewBag.statisticsList.Keys) 
      { 
       <tr> 
        <td> @tupleKey </td> 
        @foreach (var tupleItem in @ViewBag.statisticsList[tupleKey]) 
        { 
         foreach (var date in @ViewBag.dateList) 
         { 

           if (tupleItem.Item1 == date) 
           { 
            <td>@tupleItem.Item2</td> 
           } 

         } 
        } 
       </tr> 
      } 
     </tbody> 

@tupleItem.Item2は、それが新しいキーが追加された場合(リストから保存されたデータは、TXTファイルから抽出される)が属する日付に表示されません。誰でもこのデータをより良く表示するという考えはありますか?

+0

C#コードをデバッグするときに順序が完璧になりますが、ビューでは順序が問題になります(データがオーバーライドされます)。 – DaianaB

+0

現在どのような出力が生成されていますか?その代わりに何をしたいですか? – mjwills

+0

たとえば、日付「12.07.2017」特定のキーに対して特定の値がありません。非値は、次の値(次の日付に属する)で上書きされます。だから、 "12.07.2017"にはそのキーの値があります。これはOKではありません – DaianaB

答えて

0

タプルには多数のオーバーロードされたオプションがあるため、タプルの内容を日付のコンテンツにリンクするために使用できる第3のDateTimeパラメータはありません。リストを別々にしたい場合は、辞書/リストの読み込み順序が同じであることを確認してください。何かがうまくいかないように聞こえる。

+0

日付はTupleやdateListのように文字列で表されます(私は第3引数が必要だと思います)。 C#コードをデバッグするときに順序が完璧になりますが、ビューでは順序が問題になります – DaianaB

関連する問題