2016-08-22 7 views
-1

私は2つのアクションを持っています。一つビューを返すだけでなく、MVCの別のアクションにリダイレクトする[またはビューを返して現在のビューをリロードする]?

public ActionResult ViewRequests() 
    { 
     List<AgentRequests> Reqs = con.AgentRequests 
             .Where(x => x.Status == RequestStatus.Open) 
             .OrderBy(x => x.RequestedOn).ToList(); 

     return View(Reqs); 
    } 

第一、第二ワン:

public ActionResult ProcessRequest(long Id) 
    { 

     // Code to export data to excel file 

     //return RedirectToAction("ViewRequests"); 
     return View(KnoqedUsers); 
    } 

私の最初のアクションがリストを持つビューを返します。このリストの各行には、「Process Request」というリンクがあります。クリックすると、2番目のアクションが呼び出されます。

私の2番目の措置は、ダウンロードするExcelファイル出力を生成します。

私の問題は - 現在クリックされた行が処理されます。だから私は私の見解からそれを削除する必要があります。

手動でページをリロードするとOKです。しかし、どうすれば自動的に再読み込みできますか?

2番目のコードに示すように、2つのreturn文を使用することはできません。どうすればこれを達成できますか?

答えて

0

できません。これは基本的にインターネットの仕組みではありません。インターネットの最も重要な原則の1つは、要求応答と呼ばれるものです。言い換えれば、リクエストは1つのレスポンスを取得し、レスポンスはリクエストに続くだけです。クライアントはサーバーに要求を行い、そのサーバーはクライアントに応答を返します。ビュー(HTML)は応答であり、リダイレクトはでもの応答です。したがって、の両方をのどちらか一方だけ返すことはできません。同様に、クライアントが最初に要求を再生することなく、HTML応答を返してからHTML応答を返すことはできません。

関連する問題