C# ASP.NET MVC3级联DropDownList工作不正常

C# ASP.NET MVC3级联DropDownList工作不正常,c#,jquery,.net,asp.net-mvc-3,jquery-mobile,C#,Jquery,.net,Asp.net Mvc 3,Jquery Mobile,我使用的是级联的dropdownlist。当我选择makeit时,使用webservice将makeId发布到服务器并返回模型。然后我将模型添加到dropdownlist 问题是。如果我在firefox中使用firebug工具查看模型dropdownlist,我可以看到刚刚添加的模型,但当我单击它时,它会打开为空 我正在使用jQueryMobile和jQuerySelectBox 这是我的密码: $(document).ready(function () { $('#Makes'

我使用的是级联的dropdownlist。当我选择makeit时,使用webservice将makeId发布到服务器并返回模型。然后我将模型添加到dropdownlist

问题是。如果我在firefox中使用firebug工具查看模型dropdownlist,我可以看到刚刚添加的模型,但当我单击它时,它会打开为空

我正在使用jQueryMobile和jQuerySelectBox

这是我的密码:

$(document).ready(function () {
        $('#Makes').change(function () {
            getModels();
        });
    });

 function getModels() {    
    var make = $('#Makes').val();           
    $.ajax({
        type: "POST",
        url: "/Services/CarService.asmx/Models",
        data: "{makeId: '" + make + "'}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function (response) {
            alert(response.d);
            var models = (typeof response.d) == 'string' ? eval('(' + response.d + ')') : response.d;
            $('#Models').attr('disabled', false).removeOption(/./);         
            for (var i = 0; i < models.length; i++) {
                var val = models[i];
                var text = models[i];
                $('#Models').addOption(val, text, false);    
                alert(models[i]);
            }
        }
    });
}


@Html.DropDownList("Makes", "Please select make")
<select id="Models"></select>

[WebMethod]
public List<string> Models(int makeId)
{
    var dataContext = new SearchModel();
    var models = from m in dataContext.GetAllModels()
                 where m.Id == makeId
                 select m.Model;
    return models.ToList();
}
尝试使用

var ModelSel = document.getElementById('Models');
for (var i = 0; i < models.length; i++) {
     var val = models[i];
     var text = models[i];
     ModelSel.options[i]=new Option(val, text);    
}

我已经找到了解决我问题的办法

刷新选定的

如果通过JavaScript操作select,则必须对其调用refresh方法来更新视觉样式。以下是一个例子:

var myselect = $("select#foo");
myselect[0].selectedIndex = 3;
myselect.selectmenu("refresh");

好的,尝试另一种方法来添加选项,而不是addOption.ex$'Models'。append+text+;但我不确定这是否会有所不同,但让我们试着保持一致。我发现这个问题是因为我引用了jQuery mobile。因此,级联下拉列表可以工作,但没有参考jQuery mobileBut,这对我来说不是一个解决方案,因为我需要使用jQuery MobileOps,所以我认为你必须使用纯javascript尝试我的新答案抱歉,这是我的错误输入,它必须是选项而不是选项