2013-12-09 44 views
0

我從來沒有使用AJAX或JQuery的面前,但這裏是我的動態加載的嘗試(從各種例子在這裏拉在計算器)我在做什麼這個動態查詢錯了?

這是腳本我有我的觀點:(編輯遵守mayabelle的代碼。 )不會引發任何警報,並且DRequest上的斷點不會跳轉,但如果直接調用drequest,則會生成結果。

<script type="text/javascript"> 
$(document).ready(function() { 
alert("testing123"); 
$response = DRequest; 
alert("good at response"); 
$.ajax({ 
     url: "request/drequest" 
     type: "GET", 
     dataType: "json", 
     success: function ($response) { 
        alert("I am an alert box2!"); 
      // Do something with your response 
      var $tr = $('<tr>').append(
     $('<td>').text($response.NeededByDate), 
     $('<td>').text($response.RequestedBy), 
     $('<td>').text($response.Username), 
     $('<td>').text($response.RequestedPCID), 
     $('<td>').text($response.RequestType_ID), 
     $('<td>').text($response.Division_ID), 
     $('<td>').text($response.ReqTypeIcon) 
    ).appendTo('#requestTable'); 
      console.log($tr.wrap('<p>').html()); 
     } 
    }); 
    setInterval(function() { 
     var url = '#'; 
     $('body').load(url); 
    }, 300000); 
}); 
</script> 

應該在同一時間動態地追加一行(直到沒有更多的行添加)從DRequest JsonResult(這是當由地址欄的方式直接調用產生的結果)。這應該每5分鐘(300000秒)重新加載整個頁面。

的JsonResult看起來像這樣

Public Function DRequest() As JsonResult 
     Dim Reqs = _db.dRequestGetAll 
     Return Json(Reqs, JsonRequestBehavior.AllowGet) 
    End Function 

其中 「_db.dRequestGetAll」 返回dRequest行的集合,像這樣:

Public Function dRequestGetAll() As IEnumerable(Of DRequest) 
    Return From r In _PITcontext.Requests Where r.CompletedDate Is Nothing Select r 
End Function 

左右。我錯過了什麼?

編輯:我用原來的帖子替換了最新版本的javascript,因爲註釋無法處理超過600個字符。

回答

0

嘗試這樣的:

$(document).ready(function() { 
    $.ajax({ 
      url: url to your controller action, 
      type: "GET", 
      dataType: "json", 
      success: function (response) { 
       // Do something with your response 
      } 
     }); 
} 

而且,在你的代碼上面您所呼叫的變量$response但隨後在每個循環中,您試圖訪問response(無$前綴)。

+0

我修改了上面的代碼以反映您的建議。仍然不會拋出DRequest()表中仍然爲空的斷點。 – Originalmouse

+0

我會建議在你的控制器動作中加入一個斷點,以確保它進入那裏。如果沒有,您的網址可能不正確或路由設置可能不同。 – mayabelle

+0

我繼續前進,並將其作爲答案進行檢查,因爲它實際上觸及了JSON結果。 (我仍然得到不可思議的結果,但它對原始問題沒有影響。)再次感謝! – Originalmouse

0

我想你應該使用$.map()而不是$ .each()。它返回你的元素的數組。差異進行了討論here.

+0

所以「$ response = $ .parseJSON(DRequest);」線看起來好嗎?如果劇本沒有被踢出去,那麼爲什麼不提示警報呢?我提出了建議的更改,但它仍然給我一個空白頁面。 (好吧,我得到一個表頭,但沒有數據) – Originalmouse

+0

你可以發佈你會在Firebug或Chrome中看到的回覆嗎? – mitch

+0

如果您要返回JSONResult,則不需要解析它。使用JsonResult時,內容類型設置爲json。 – mitch