2

を呼び出すときに、私はそれを取得できるようにデータセットを格納しねえ、私はので、ここでMVCの世界に新しいです、すべては私の質問です:MVC 5 AJAX方式

私は2(その3総なっていたデータセットを持っています)他のデータセットをマージします。私はその情報をの後に、そのページのAJAX経由で電話する必要があります。

AJAX呼び出し:

$.ajax({ 
     url: '/Switchboard/personData', 
     type: 'GET', 
     cache: false, 
     dataType: 'json', 
     data: { reqID: 234 }, 
     success: function (response) { 
      //console.log(JSON.stringify(response)); 
     }, 
     error: function (response) { 
      alert(response); 
     } 
    }); 

あなたは私がAJAX経由で私のコントローラでpersonDataメソッドを呼び出しています見ての通り。

DataSet allData = new DataSet(); 

そして、それだけで罰金と負荷の処理を行います。ALLDATAがグローバルのように定義されて

command = new SqlCommand("SELECT * FROM .....", con); 
command.Parameters.AddWithValue("@val1", 1); 
da = new SqlDataAdapter(command); 
da.Fill(ds1, "theTrip"); 
allData.Merge(ds1); 

command = new SqlCommand("SELECT * FROM .....", con); 
command.Parameters.AddWithValue("@val1", 1); 
da = new SqlDataAdapter(command); 
da.Fill(ds2, "theMain"); 
allData.Merge(ds2); 

command = new SqlCommand("SELECT * FROM .....", con); 
command.Parameters.AddWithValue("@val1", 1); 
da = new SqlDataAdapter(command); 
da.Fill(ds3, "theEvents"); 
allData.Merge(ds3); 

:私は私のコントローラ内のようなデータセットを読み込むページのロード

allDataデータセット内の必要なデータ。

[HttpGet] 
public string personData(Int32 reqID) 
{ 
    DataSet _ds1 = new DataSet(); 

    command = new SqlCommand("SELECT Admin FROM ....",con); 
    da = new SqlDataAdapter(command); 
    da.Fill(_ds1, "theLeads"); 

    allData.Merge(_ds1); 

    _ds1.Clear(); 
    command = new SqlCommand("SELECT categoryID FROM ....", con); 
    da = new SqlDataAdapter(command); 
    da.Fill(_ds1, "theGroups"); 

    allData.Merge(_ds1); 

    _ds1.Clear(); 
    command = new SqlCommand("SELECT * FROM ....", con); 
    da = new SqlDataAdapter(command); 
    da.Fill(_ds1, "theTypes"); 

    allData.Merge(_ds1); 

    _ds1.Clear(); 
    _ds1.Dispose(); 
    command.Dispose(); 
    con.Close(); 

    return JsonConvert.SerializeObject(allData, Formatting.Indented); 
} 

そして再び、それが動作しないが、それはもはや私の他のデータを持っている:私はAjaxのメソッドを呼び出し、それが私のコントローラで次のようになり、そのメソッドに行くボタンをクリックしてくださいしかし

、その中で。それは唯一持っている

theLeads

theGroups

theTypes

代わりに私がすることを必要としています何の

theTrip

theMain

theEvents

theLeads

theGroups

theTypes

theTriptheMaintheEventsがは、すべてのページがアップロードされたときに読み込まれました(することができますようにコードIを見てください投稿されました)、それは同じページからajax経由でメソッドを呼び出すときには保存されませんでしたか?

私はそれを行うために必要なものをどのように達成できますか?

+0

あなたはどのようにそれが見える 'Session' – Shoe

+0

@shoeを使用して、それをキャッシュするだろうか?セッションでデータセットを保持できるとは思わなかったのですか? – StealthRT

+0

'Session [" allData "] = allData'です。あなたはどれくらいそれを入れていますか? – Shoe

答えて

1

あなたのアプリケーションはWebアプリケーションであり、あなたはAJAX呼び出しを行っているので、あなたのapprochは機能しません。私たちのアプリケーションはステートレスなので、あなたのサービスにリクエストするたびに、 "allData"は前の状態のデータを持たずに再び初期化されます。

したがって、 "personData"メソッドでは、 "allData"に新しいデータを追加する前に、古いデータを再度設定する必要があります。

おかげに関して、 チェタンRanpariya

関連する問題