簡體   English   中英

阿賈克斯 我如何回報價值?

[英]Ajax. How can I return value?

我想將結果設置為MVC控制器方法的變量。

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

//與c ++相比

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

PS:它不是異步的,它應該是同步函數調用,以便將值返回給函數主體。

設置控制器

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"

Ajax調用是異步工作的,它的工作方式如下:

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

成功處理Ajax請求后,您可以在成功事件中處理返回的數據。

編輯:我已經嘗試了3nigma的答案,它按安東的要求工作。

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

    return result;
}

請參閱有關成功的部分: http : //api.jquery.com/jQuery.ajax/

您不能依賴於返回結果,因為正如Anwar所提到的,ajax是異步的。 您需要做的是定義一個回調函數,一旦返回結果,它會對結果執行某些操作,在本例中為“成功”函數。

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您可以在結果更新后調用函數-執行其他操作

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM