2013-06-24 107 views
0

我是MVC編程的新手。我正在研究一個簡單的POC應用程序,它顯示/編輯來自數據庫的數據。AJAX調用MVC控制器動作

我有2個視圖和2個控制器。在其中之一,MVC控制器操作方法的JQuery AJAX調用工作正常。但不是另一個(在這裏,AJAX調用不會觸發Action方法)。

任何人都可以有這種情況?

jQuery的代碼如下:

$('#ddlZones').change(function() { 
    var value = $('#ddlZones option:selected').val(); 
    // alert(value); var status = $('#ddlStatus option:selected').val(); 
    // alert(status); $('#lstResources').children().remove(); 
    $('#lstBeds').children().remove(); 
    $.ajax({ url: 'FillResources', type: 'POST', 
     data: JSON.stringify({ ZoneId: value }), 
     dataType: 'json', contentType: 'application/json', 
     success: function (result) { 
      for (var r in result) { 
       $('#lstResources').append('<option value="' + result[r].Value + '">' + result[r].Text + '</option>'); 
      } 
     } 
    }); 
}); 

感謝 Latha

+1

嗯,你能展示一些代碼問題發生的地方嗎?或者至少是你得到的錯誤? – codetantrik

+0

我沒有收到任何錯誤。AJAX post方法未調用Action方法。請查看我更新後的代碼問題。 – Latha

+0

我在錯誤中發現異常:在AJAx調用中,它只是說錯誤:'請求的URL未找到'。 – Latha

回答

0

檢查controller url被稱爲與否, 此外,在data parameter你可以調用它只是像{ ZoneId: value },而不是 JSON.stringify({ ZoneId: value })

在服務器端get此參數可以通過使用$_POST如果你正在使用PHP controller,還要檢查在console,你是從server side或沒有得到json

$.ajax({ url: 'FillResources', type: 'POST', 
    data:{ ZoneId: value }, 
    dataType: 'json', contentType: 'application/json', 
    success: function (result) { 
     for (var r in result) { 
      $('#lstResources').append('<option value="' + result[r].Value + '">' + result[r].Text + '</option>'); 
     } 
    } 
}); 
0

請在瀏覽器中檢查請求和響應。您可以使用IE/Chrome/FF(Firebug)或小提琴中的內置功能。如果這是ASP.NET MVC,它可能只是一個路由問題。

具體而言,請查看您的請求url是什麼以及服務器的HTTP響應是什麼。

在路由URL中指定控制器和動作以避免任何此類錯誤總是一個好習慣。

另一件要檢查的變量函數是否會被調用?您可以在ajax請求之前放置一個console.log,以確保不是這種情況。

相關問題