这个动态查询我做错了什么?

时间:2013-12-09 18:30:00

标签: javascript json asp.net-mvc-3

我之前从未使用过AJAX或JQuery,但这是我对动态加载的尝试(来自stackoverflow的各种示例)

这是我在我看来的脚本:(编辑以符合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个字符。

2 个答案:

答案 0 :(得分:0)

我认为你应该使用$.map()而不是$ .each()。它返回一个元素数组。讨论了差异here.

答案 1 :(得分: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(无$前缀)。