阿贾克斯。我怎样才能回报价值?

时间:2012-01-27 14:38:26

标签: javascript jquery c++ ajax

我希望从MVC控制器方法将结果设置为变量。

function someFunction(){ 
    var result;
    $.Ajax{    
        //??? 
    }
    return result; 
}

//与c ++相比

int f() { //just! return result; }

P.S。:它不是异步的,它应该是同步函数调用,以便将值返回给函数体。

5 个答案:

答案 0 :(得分:3)

设置控制器

public ActionResult Foo(){

return Content("Hello Anton");
}

设置ajax请求,记得将其设为async:false,默认情况下为true,以便返回值

function greeting(){
   var x= $.ajax({
            url:'/ControllerName/Foo',
            async:false,    
          });
   return x.responseText();
}

现在您可以调用类似

的功能
var v = greeting();
alert(v); //if every thing goes well you will see "Hello Anton"

答案 1 :(得分:0)

Ajax调用异步工作,它的工作方式如下:

$.ajax({
  url: '/{Your Controller Name}/{Action Name}',
  success: function(data) {
    alert('My returned data is:' + data);
  }
});

成功处理Ajax请求后,您可以处理退回的内容 成功事件中的数据。

修改 我已经尝试了3nigma的答案,它就像安东要求的那样。

答案 2 :(得分:0)

function someFunction(){
    var result;
    $.Ajax({
        url: '/some/ajax/call',
        success: function (data){
            result = data;
        }
    });

    return result;
}

请参阅有关成功的部分:http://api.jquery.com/jQuery.ajax/

答案 3 :(得分:0)

你不能依赖于返回结果,因为正如Anwar所提到的,ajax是异步的。你要做的是定义一个回调函数,该函数在结果返回后对结果执行某些操作,在本例中为“成功”函数。

答案 4 :(得分:0)

var result;

function someFunction(){
    var result;
    $.Ajax({
        url: '/some/ajax/call',
        success: function (data){
            result = data;
            // call a method that processes result
        }
    });
}

你可以这样做...... result是在调用函数之前创建的 - 在通过AJAX调用成功返回数据后,成功方法将data分配给你可以调用的result结果更新后的函数 - 执行其他操作