Asp.net mvc JQuery AJAX后级联下拉列表

Asp.net mvc JQuery AJAX后级联下拉列表,asp.net-mvc,jquery,Asp.net Mvc,Jquery,我试图通过AJAX帖子根据上一个下拉列表的值填充下拉列表,但是,url没有与控制器中的方法正确连接。在FireBug中声明以下错误: "NetworkError: 500 Internal Server Error - http://localhost:1079/RoundDetail/GetCourses" 这是我的控制器: public class RoundDetailController : Controller { private GolfTrackerEnt

我试图通过AJAX帖子根据上一个下拉列表的值填充下拉列表,但是,url没有与控制器中的方法正确连接。在FireBug中声明以下错误:

"NetworkError: 500 Internal Server Error - http://localhost:1079/RoundDetail/GetCourses"
这是我的控制器:

public class RoundDetailController : Controller
    {
        private GolfTrackerEntities2 db = new GolfTrackerEntities2();

        public JsonResult GetFacilities(int id)
        {
            var facilities = db.Facilities.Distinct().ToList();
            return Json(facilities, JsonRequestBehavior.AllowGet);
        }
    }
以下是我的javascript:

function changeCourses() {
            var val = $(this).val();
            $courses = $('#ddlCourses');

            $.ajax({
                url: "@Url.Action("GetCourses", "RoundDetail") ",
                type: "POST",
                dataType: 'json',
                data: "{ 'facilityId':'" + val + "'}",
                contentType: "application/json",
                success:
                    function (msg) {
                        console.log(msg);
                        var list = JSON.parse(msg.d);
                        for (var i = 0; i < list.length; i++) {
                            courseList += '<option value="' + course.Abbr + '">' + course.Name + '</option>';
                        }
                        $courses.html(courseList);

                    }
            });
        }
function changeCourses(){
var val=$(this.val();
$courses=$('ddlcurses');
$.ajax({
url:“@url.Action”(“GetCourses”,“RoundDetail”)”,
类型:“POST”,
数据类型:“json”,
数据:“{'facilityId':'”+val+“}”,
contentType:“应用程序/json”,
成功:
功能(msg){
控制台日志(msg);
var list=JSON.parse(msg.d);
对于(变量i=0;i
我想问题出在你的控制器上。您指定了另一个操作,而不是导致错误的操作,因此很难说是什么问题。另外,请单击firebug中的行并查看响应正文-它包含有关服务器错误的详细信息

似乎对于内容类型
application/json
不需要字符串化javascript对象,您可以将
{facilityId:val}
传递给数据

另外,我不确定使用字符串连接构建选项列表是否正确,因为它不是javascript注入安全的。你可以用

$courses.append($(“”).attr(“value”,course.Abbr).text(course.Name))


相反。

您应该检查500的原因,它不是由JS引起的。最好的方法是什么?请参阅其他人提到的服务器错误日志,500错误来自您的httpd,意思是apache,意思是服务器端代码崩溃,而不是客户端(javascript)。