2016-07-08 6 views
0

コントローラは、Excelシートからデータを表示します。 コントローラーが1時間ごとにExcelシートをチェックする必要があります。また、ビューを更新する必要があります。 これは私のコントローラのコードです:5分ごとに更新するasp.net mvc

string path3 = "D:/Project/Sesame Incident Dump_20160317.xls"; 

Excel.Application application3 = new Excel.Application(); 
Excel.Workbook workbook3 = application3.Workbooks.Open(path3); 
Excel.Worksheet worksheet3 = workbook3.ActiveSheet; 
Excel.Range range3 = worksheet3.UsedRange; 
List<SesameIncident> ListSesameIncident = new List<SesameIncident>(); 
for (int row = 2; row <= range3.Rows.Count; row++) 
{ 
    SesameIncident S = new SesameIncident(); 
    S.Number = (((Excel.Range)range3.Cells[row, 1]).Text); 
    S.AssignedTo = (((Excel.Range)range3.Cells[row, 5]).Text); 
    S.Opened = (((Excel.Range)range3.Cells[row, 6]).Text); 
    S.Status = (((Excel.Range)range3.Cells[row, 7]).Text); 
    S.Priority = (((Excel.Range)range3.Cells[row, 10]).Text); 
    S.AssignedGroup = (((Excel.Range)range3.Cells[row, 12]).Text); 

    ListSesameIncident.Add(S); 

} 

ViewBag.ListSesameIncidents = ListSesameIncident 
     .Where(x => x.Status == "Pending Customer").Take(13); 
+0

コントローラは、キャッシュのいくつかの種類がない限り、あなたのファイルを介してのアクションはそれを呼び出すたびに行かなければならないだろう使用されて –

+0

またはデータがデータベースに格納することができます、私はあなたの完全な実装のアイデアを得ることはありません –

+0

コントローラは、Excelシートを通過する必要があります –

答えて

1

あなたは、クライアントごとにX秒を更新するには、あなたのコントローラであなたのHttpContext.Response

HttpContext.Response.Headers.Add("refresh", "300; url=" + Url.Action("Index")); 
+0

私はそれが必要な時はどうですか? "300 !!!"または私は "1000"を1秒間使用しなければならない –

+0

私はメソッドを実行する前に、1時間ごとまたは内部に追加しますか? –

+0

300秒、5分 – Kahbazi

0
<script type="text/javascript"> 
    setTimeout(function() { 
     location.reload(); 
    }, 5 * 60 * 1000); 
</script> 

は、あなたが最後だったとき、あなたが参照するデータベース内のテーブルが必要になる場合がありますコントローラのため、このよう

ページを更新することができますRefresh Page for interval using js

を参照してください。更新されました。参照用に永続的に参照データを保存する必要があります。これは私の意見です。このような要件はありませんでした。

+1

私は睡眠を使用することはできますか? –

0

To (つまり、それを開始する要求なしで)ユーザーのやり取りなしで定期的に何かを実行すると、Webアプリケーションはあなたが望むものではありません。代わりに、Windowsサービス、またはホストシステムのスケジューリングソフトウェア(Windowsタスクスケジューラ、cronなど)によって定期的に実行されるようにスケジュールされた簡単なコンソールアプリケーションを探しています。 How to execute a method in Asp.net MVC for every 24 hours

私はむしろ読むxlsを毎回保存する可能性のあるキャッシングについて考えると思います。 How to cache data in a MVC application

0
  • Headerを追加することができますが、非常に簡単です参照してください。 meta http-equiv あなたのページのヘッダーの値がrefreshであるだけです。

    このソリューションは、きれいを読んで、あなたは簡単なJavaScriptのループに依存されることはありません簡単です。

  • XごとにExcelシートを更新するには、 タイマーの別のアプリが必要です。 .netを使用している場合は、簡単なコンソールアプリケーションで作業を行います。あなたはアズールを使用している場合、あなただけのWorkerロールを使用することができ、それは労働者 約です正確に何であり、p

関連する問題