Javascript 有没有办法将OnSuccess脚本添加到我的Ajax调用中

Javascript 有没有办法将OnSuccess脚本添加到我的Ajax调用中,javascript,jquery,razor,Javascript,Jquery,Razor,我有以下脚本: $.ajax({ url: '/Switch/showOptions', data: { switchid: "331", }, type: 'get', success: function (html) { $('#showoptions').html(html); $("#showoptions").dialog("show"); //This could also be dialog(

我有以下脚本:

$.ajax({
    url: '/Switch/showOptions',
    data: {
        switchid: "331",

    },
    type: 'get',
    success: function (html) {
        $('#showoptions').html(html);
        $("#showoptions").dialog("show"); //This could also be dialog("open") depending on the version of jquery ui.
        OnSuccess('createsuccess')         
    },
});
我试图做的是在显示对话框后启动一个
OnSuccess
脚本,当前我得到一个未定义OnSuccess的异常?那么,有人能建议我如何为我的Ajax调用启动一个
OnSuccess
脚本吗?

尝试使用以下方法:

提供一种基于一个或多个回调函数执行回调函数的方法 对象,通常是表示异步事件的延迟对象

因此,考虑到这一点,下面是重新编写的代码,以使用
jQuery.when()

或者,如果您只是想测试这个概念,请将
jQuery.when()
更改为:

$.when(ajax_action).then(function(data, textStatus, jqXHR) { alert('I am a success!'); });
编辑:尝试解决原始海报请求的最后一次编辑。他们想启动一个名为
createsuccess
的脚本,所以只需执行以下操作:

$.when(ajax_action).then(function(data, textStatus, jqXHR) { createsuccess(); });

如果您添加了一个;在你成功的电话之后。这不是要触发的事件,而是将在前两条语句之后执行的函数

function OnSuccess(p_Success) {
    alert('it worked!');
}


$.ajax({
    url: '/Switch/showOptions',
    data: {
        switchid: "331",

    },
    type: 'get',
    success: function (html) {
        $('#showoptions').html(html);
        $("#showoptions").dialog("show"); //This could also be dialog("open") depending on the version of jquery ui.
        OnSuccess('createsuccess');
    },
});

什么是
OnSuccess
-您已经在使用
success
回调?什么是
OnSuccess
?它是某个地方的函数吗?它是在哪里定义的,你能展示其余的代码吗?它是否像创建一个函数并调用它一样简单,这是你的问题吗?你能展示你是如何声明OnSuccess()的吗?当我在asp.net mvc中使用Ajax助手时,我可以选择定义OnSuccess、OnComplete、Onfailure等函数,等等,所以我试图在这里实现同样的结果。但我仍然得到以下异常0x800a1391-Microsoft JScript运行时错误:“OnSuccess”是undefined@johnG如果
OnSuccess
未定义,我不清楚您试图做什么,因为您的操作已经在jQuery
success:
回调的范围内发生
OnSuccess
似乎是您想要使用的一个单独的JavaScript函数,因此这就是我的解决方案所依赖的。我曾经使用过ajax.ActionLink和ajax.Beginfounds,它们是asp.net mvc使用的ajax帮助程序。在ajax.actionlink中,我可以定义一个onsuccess脚本,在ajaxcall成功时触发。因此,我希望我的ajax调用有类似的脚本。@johnG 100%不清楚内置ajax
:success
或我的解决方案如何解决这个问题。感谢帮助,基本上这对我的$.when(ajax_action)有效。然后(函数(数据){createsuccess(数据);});如果你读了我的答案和评论,原来的海报就被弄糊涂了。而不是
OnSuccess('createsuccess')
他们真的想要
createsuccess()
的行为。混乱但澄清了。
function OnSuccess(p_Success) {
    alert('it worked!');
}


$.ajax({
    url: '/Switch/showOptions',
    data: {
        switchid: "331",

    },
    type: 'get',
    success: function (html) {
        $('#showoptions').html(html);
        $("#showoptions").dialog("show"); //This could also be dialog("open") depending on the version of jquery ui.
        OnSuccess('createsuccess');
    },
});