从MVC View到Javascript,调用控制器,并返回Json结果

时间:2013-01-02 21:19:14

标签: javascript asp.net-mvc json

我正在研究MVC4中的单页应用程序。我有一个下拉框。当我选择该下拉框时,onchange事件将触发调用一些JavaScript。

我需要JavaScript来调用控制器并让控制器返回一些数据的JSON结果(我知道如何获取数据)。任何人都可以帮我找到一个基本的框架吗?

2 个答案:

答案 0 :(得分:1)

将onchange javascript事件连接到您的select元素

在onchange的事件函数中,让ajax将select元素的值发送给控制器。

在控制器/操作方法中,根据值进行工作,然后准备json数据(可能是序列化?)然后返回它。

在ajax调用的成功部分,解析或以其他方式使用返回的json数据。

答案 1 :(得分:0)

在你的控制器构造函数中:

define('_IS_AJAX', isset($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) === 'xmlhttprequest');

在加载视图之前,请检查_IS_AJAX变量:

if(_IS_AJAX) {
    //echo json_encode(data you want to return);
} else {
    // load view normally
}

在您的视图中(使用jQuery)

$('#dropdownid').change(function() {
    $.ajax({
        url: requesturl,  //your controller URL
        dataType: 'json',
        success: function(response) {
            //Do stuff with data
            }
        },
        error: function(request, error, errormessage) {
            $("#error").html(error + '\n' + errormessage);
        }
    });
});