簡體   English   中英

使用ajax返回控制器方法值

[英]Return a controller method values using ajax

我有一個函數,使用ajax調用控制器方法

function CallService(data) {
        $.ajax({
            url: '@Url.Action("MyMethod", "MyController")',
            type: 'GET',
            dataType: 'json',
            cache: false,
            data: { 'serializedMessage': data }                
        });

MyMethod()返回一個復雜的對象,我需要在頁面上顯示一些屬性。

<script>
    $(function(){          

            // create inputData

            function (inputData) {                
                var myItem = CallService(inputData);                
                $('#name').text(myItem.Name);
            };
        });        
</script>

由於ajax不返回任何內容,因此在頁面上收到錯誤消息“ myItem未定義” 任何人都可以解釋如何返回變量並在JS函數中使用它嗎?

我很驚訝您在任何地方都找不到該示例,但是這里有:

定義回調的幾種方法可以在ajax調用完成時運行,如http://api.jquery.com/jquery.ajax/上的文檔所示。 這是一個基於promise API的應用程序:

function (inputData) {                
    $.ajax({
        url: '@Url.Action("MyMethod", "MyController")',
        type: 'GET',
        dataType: 'json',
        cache: false,
        data: { 'serializedMessage': inputData }
    }).done(function(result) {
        console.log(JSON.stringify(result)); //just for debugging, to see the structure of your returned object
        $('#name').text(result.Name);
    });
}

您需要了解的一件事是ajax調用是異步運行的,因此以前使用的結構將無法工作-您無法直接從“ CallService”包裝器返回任何內容,這使它變得多余。 您必須等到ajax調用完成,然后運行取決於“完成”回調內(或從中調用的函數內)結果的任何代碼。

根據我鏈接到的文檔,如果您願意,還可以為任務定義其他回調,例如處理錯誤。

您必須使用成功:功能(響應){}

暫無
暫無

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

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