AJAX调用MVC控制器动作

时间:2013-06-24 03:42:07

标签: asp.net-mvc jquery asp.net-mvc-controller

我是MVC编程新手。我正在开发一个简单的POC应用程序,用于显示/编辑数据库中的数据。

我有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

2 个答案:

答案 0 :(得分:0)

检查controller url是否被调用, 同样在data parameter中,您可以将其称为{ ZoneId: value },而不是JSON.stringify({ ZoneId: value }) get

如果您使用 PHP ,请使用$_POST在服务器端controller使用此参数 在console中,同时检查json您是否server side来自$.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>'); } } });

{{1}}

答案 1 :(得分:0)

请在浏览器中查看请求和响应。你可以在IE / Chrome / FF(Firebug)或小提琴手中使用内置的。如果这是ASP.NET MVC,它可能只是一个路由问题。

具体来说,查看您的请求网址是什么以及服务器的HTTP响应是什么。

在路由网址中指定控制器和操作始终是一个好习惯,以避免任何此类错误。

要检查的另一件事是,是否实际调用了更改功能?您可以在ajax请求之前放置console.log,以确保不是这种情况。