Ajax调用失败

时间:2017-01-24 11:59:54

标签: jquery ajax asp.net-mvc

我正在尝试创建一个jquery / ajax脚本。目的是从数据库中获取数据,比较successFunc中的结果,并对mvc actionResult执行下一个ajax调用,该调用将根据结果呈现视图。由于某种原因,它无法正常工作。

git add .

ActionResults方法之一:

IDispose

在调试期间,我可以看到对ActionResult Contact()进行了调用,但它没有呈现视图。知道为什么代码不起作用吗?

3 个答案:

答案 0 :(得分:1)

您获取视图的ajax调用应遵循以下模式,这是我用于密码重置的模式:

$.ajax({
        url: '@Url.Action("ActionName","ControllerName")',
        cache: false,
        data: { userId: userId, newPassword: password },
        type: 'GET',
        success: function (data) {                        
            $('#unlockResult').html(data);
        },
    });

动作如下所示,并返回 PartialView

public async Task<ActionResult> UnlockUserAccount(string userId, string newPassword)
    { 
    //other stuff here
    return PartialView("_AjaxResponse");
}

ajax调用的data部分中的success参数是PartialView的html,然后将其注入到页面中的div中:

<div id="unlockResult"></div>

在我的场景中,PartialView会返回一些添加到现有页面的成功/失败HTML。如评论中所述,如果您尝试加载一个全新的页面,那么您就不想使用ajax。

答案 1 :(得分:0)

首次调用ajax后,你还没有结束GetPageData函数。将其写下如下并检查 -

function GetPageData() {
    debugger;
    $.ajax({
        type: "Post",
        url: '/Track/GetPageData',
        dataType: "json",
        data: param = "",
        success: successFunc,
        error: errorFunc
    });
}
    function successFunc(data, status) {
            $.ajax({
                type: "Post",
                url: '/Track/Contact',
                dataType: 'json',
                success: successF,
                error: errorF
            });

    }
    function successF() {
        alert('services');
    }
    function errorF() {
        alert('servicesFail');
    }
    function errorFunc() {
        alert('servicesFail');
    }

答案 2 :(得分:0)

最后我使用了一个适合我的解决方案:

function GetPageData() {
$.ajax({
    type: "Post",
    url: '/Track/GetPageData',
    dataType: "json",
    data: param = "",
    success: successFunc,
    error: errorFunc
});
function successFunc(data, status) {
    alert('data; '+data+', '+'status: '+status);
    if (data == 'services') {
        window.location = "/Track/Services";
    }
    else if (data == 'contact') {
        window.location = "/Track/Contact";
    }
    else{
        window.location = "/Track/About";
    }   
}

感谢您的帮助