JQUERY GET操作不起作用

时间:2010-11-15 11:17:22

标签: asp.net-mvc jquery

我遇到以下JQuery脚本的问题

$('#extra_data').append('<div id="tabs-' + (tab_length + 1) + '"></div>');
    $.get(url, function(data) {
    $('#tabs-' + (tab_length + 1)).html(data);
     }); 

我的麻烦是$ .get(..)操作不会返回任何结果 - 尽管使用firebug时它会按预期显示ajax调用。

任何线索?

感谢。

4 个答案:

答案 0 :(得分:1)

<强>控制器

<HttpPost()> _
Function GetPartialView() As ActionResult
    If (Request.IsAjaxRequest()) Then
        Return View("PVTest")
    Else
        Return View()
    End If
End Function

如果它是Ajax,我已经过滤了请求。您甚至可以将对象传递给局部视图。

的jQuery

<script type="text/javascript">
    $(document).ready(function() {
        $.ajax({
            type: 'POST',
            url: 'Home/GetPartialView',
            data: {},
            dataType: 'json',
            beforeSend: function(XMLHttpRequest) {
            },
            complete: function(XMLHttpRequest, textStatus) {
                $('#extra_data').append(XMLHttpRequest.responseText);
            }
        });
    });
</script>

部分视图(PVTest.ascx)

<%@ Control Language="VB" Inherits="System.Web.Mvc.ViewUserControl" %>
<div id="01">
    Hello World
</div>

答案 1 :(得分:0)

尝试加载方法:
$( '#extra_data')追加( '');
$('#tabs-'+(tab_length + 1))。load(url)

答案 2 :(得分:0)

我认为你需要在ASP.NET MVC中使用Post和[HttpPost],我认为有一个安全性 与GET相关的问题。

我似乎只使用Post操作并记得看到有关安全性的内容。 会看看我是否可以验证......

增加:

请参阅:ASP.NET MVC 2.0 JsonRequestBehavior Global Setting

答案 3 :(得分:0)

我会使用POST,正如Mark建议的那样:

$.ajax({
    type: 'POST',
    url: url,
    data: { },
    dataType: 'json',
    beforeSend: function(XMLHttpRequest) {
    },
    complete: function(XMLHttpRequest, textStatus) {
    var Response = $.parseJSON(XMLHttpRequest.responseText);
    }
});

Response应包含JSON流。您可以将它附加到您的元素。

控制器应该做这样的事情:

<HttpPost()> _
Function DoSomething() As ActionResult

    Return (Json(myObject, JsonRequestBehavior.DenyGet))

End Function