モデルに複数のレコードを取得すると、10個の最新レコードが降順で必要になります.iテーブルに10レコードしか表示しないでください。 linqクエリので、私は10レコードを取得することができますforeachループでも、それは10回以上バインドすべきではありません。あなただけのTake
メソッドを使用することができCのモデルに最新のレコードを10個だけバインドする方法
コード
public ActionResult AssetTrack()
{
model.AddRange(getAssetDetails("0000acfffe588041"));
model= model.OrderByDescending(t => t.time).Take(10).ToList();
return View(model);
}
WebRequest req = WebRequest.Create(@"https://example.com");
req.Method = "GET";
req.Headers["Authorization"] = "Basic " + "[email protected]==";
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();
List<AssetDetail> Pirs = Newtonsoft.Json.JsonConvert.DeserializeObject<List<AssetDetail>>(responseString);
foreach (var item in Pirs)
{
byte[] data = Convert.FromBase64String(item.dataFrame.ToString());
AssetTrackerViewModel assetModel = new AssetTrackerViewModel();
assetModel.deviceid = deviceID;
assetModel.longitude = Convert.ToString(Encoding.UTF8.GetString(data).Substring(4));
assetModel.latitude = Convert.ToString(Encoding.UTF8.GetString(data).Substring(4));
assetModel.time = TimeZoneInfo.ConvertTimeFromUtc(item.timestamp, TimeZoneInfo.FindSystemTimeZoneById("India Standard Time")).ToString();
model.Add(assetModel);
}
}
'Pirs.OrderBy(X => x.time).Take(10).ToList();' –