2017-03-09 8 views
0

複数のレコードを取得しているので、テーブルに表示できません。このコードは、複数のレコードのコレクションを使用する複数のrecords.howのために働いていない単一のレコードのために働いています。コントローラのテーブルから複数のレコードを表示する方法コントローラのアクションで、ストリームリーダーからデータを取得する方法#

サンプルデータ

[{"id":1488437716804,"timestamp":"2017-03-02T06:55:16.804Z","dataFrame":"UkFEOkRO","fcnt":12453,"port":2,"rssi":-83,"snr":8.5,"sf_used":7,"decrypted":true},{"id":1488437738877,"timestamp":"2017-03-02T06:55:38.877Z","dataFrame":"UkFEOkRO","fcnt":12455,"port":2,"rssi":-87,"snr":9.80000019073486,"sf_used":7,"decrypted":true}] 

コントローラ

private List<PIRDetailsViewModel> getPirDetails() 
{ 
    List<PIRDetailsViewModel> model = new List<PIRDetailsViewModel>(); 

    try 
    { 
     WebRequest req = WebRequest.Create(@"https:url"); 
     req.Method = "GET"; 
     req.Headers["Authorization"] = "Basic " + "a2VybmVsc3BoZXJlOmtlcm5lbHNwaGVyZQ=="; 
     HttpWebResponse resp = req.GetResponse() as HttpWebResponse; 
     var encoding = resp.CharacterSet == "" ? Encoding.UTF8 : Encoding.GetEncoding(resp.CharacterSet); 
     using (var stream = resp.GetResponseStream()) 
     { 
      var reader = new StreamReader(stream, encoding); 
      var responseString = reader.ReadToEnd(); 
      dynamic bin = Newtonsoft.Json.JsonConvert.DeserializeObject(responseString); 
      byte[] data = Convert.FromBase64String(bin.dataFrame.ToString()); 
      PIRDetailsViewModel binModel = new PIRDetailsViewModel(); 
      binModel.status = Convert.ToString(Encoding.UTF8.GetString(data).Substring(4)); 
      binModel.UpdatedTime = TimeZoneInfo.ConvertTimeFromUtc(Convert.ToDateTime(bin.timestamp), TimeZoneInfo.FindSystemTimeZoneById("India Standard Time")).ToString(); 
      model.Add(binModel); 
     } 
    } 


    return model; 
} 

ビュー

<table class="table table-striped" id="listing"> 
     <thead> 
      <tr class="success"> 
       <th class="success" style="font-size:20px">sl no</th> 
       <th class="success" style="font-size:20px">Time</th> 
       <th class="success" style="font-size:20px">status</th> 
      </tr> 
     </thead> 
     <tbody> 
      @foreach (var item in Model.Select((value, i) => new { i, value })) 
      { 
        <tr id="[email protected]"> 
        <td class="danger">@item.value.status</td> 
        <td class="warning">@item.value.UpdatedTime</td> 

       </tr> 
      } 
     </tbody> 
    </table> 
+1

コレクションを使用してモデルにバインドする必要があります。ビューでは、モデルでバインドしたコレクションを使用して、グリッド/テーブルとして表示するようにレンダリングする必要があります –

答えて

0

あなたのモデルに一つだけの要素を追加します。

あなたは、あなたのビューで一つだけの要素を持っている理由ですmodel.Add(binModel);

に一度だけ呼び出します。

関連する問題