![](/img/trans.png)
[英]Using Jquery ajax to call ActionResult method in Controller and return data
[英]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.