0

我是 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>'); 
            } 
        } 
    });
});

谢谢拉莎

4

2 回答 2

0

检查是否controller url被调用,也data parameter可以简单地调用它,{ ZoneId: value }而不是 JSON.stringify({ ZoneId: value })

在服务器端,如果您在使用PHP ,请使用get此参数,还要检查您是否从中获取。$_POSTcontrollerconsolejsonserver 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>'); 
        } 
    } 
});
于 2013-06-24T04:12:28.063 回答
0

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

具体来说,查找您的请求 url 是什么以及来自服务器的 HTTP 响应是什么。

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

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

于 2013-06-24T04:25:51.257 回答