[英]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.