Jquery MVC中的级联下拉列表不工作

Jquery MVC中的级联下拉列表不工作,jquery,crm,Jquery,Crm,请协助我填充级联下拉列表时遇到问题。 请参阅下面的代码。我有一个方法来获取代码,但是它失败了,JavaScript中出现了一个异常 public ActionResult LoadTown() { List<SelectListItem> li = new List<SelectListItem>(); li.Add(new SelectListItem { Text = "Select", Value = "0" });

请协助我填充级联下拉列表时遇到问题。 请参阅下面的代码。我有一个方法来获取代码,但是它失败了,JavaScript中出现了一个异常

public ActionResult LoadTown()
    {
        List<SelectListItem> li = new List<SelectListItem>();
        li.Add(new SelectListItem { Text = "Select", Value = "0" });
        li.Add(new SelectListItem { Text = "ALBERTON", Value = "1" });
        li.Add(new SelectListItem { Text = "BEDFORDVIEW", Value = "2" });
        li.Add(new SelectListItem { Text = "BENONI", Value = "3" });
        li.Add(new SelectListItem { Text = "BOKSBURG", Value = "4" });
        li.Add(new SelectListItem { Text = "BRAKPAN", Value = "5" });
        li.Add(new SelectListItem { Text = "EDENVALE", Value = "6" });
        li.Add(new SelectListItem { Text = "GERMISTON", Value = "7" });
        li.Add(new SelectListItem { Text = "KEMPTON PARK", Value = "8" });
        li.Add(new SelectListItem { Text = "NIGEL", Value = "9" });
        li.Add(new SelectListItem { Text = "SPRINGS", Value = "10" });
        li.Add(new SelectListItem { Text = "BRAKPAN", Value = "11" });
        li.Add(new SelectListItem { Text = "EDENVALE", Value = "12" });
        ViewData["town"] = li;
        return View();
    }

    public JsonResult GetSurburbs(string id)
    {
        List<SelectListItem> states = new List<SelectListItem>();
        switch (id)
        {
            case "ALBERTON":
                states.Add(new SelectListItem { Text = "Select", Value = "0" });
                states.Add(new SelectListItem { Text = "ALBERANTE", Value = "1" });
                states.Add(new SelectListItem { Text = "AALBERTON", Value = "2" });
                states.Add(new SelectListItem { Text = "ALBERTSDAL", Value = "3" });
                states.Add(new SelectListItem { Text = "ALRODE", Value = "4" });
                states.Add(new SelectListItem { Text = "ALRODE SOUTH", Value = "5" });
                states.Add(new SelectListItem { Text = "ARTON", Value = "6" });
                states.Add(new SelectListItem { Text = "BASSONIA ROCK", Value = "7" });
                states.Add(new SelectListItem { Text = "BRACKENDOWNS", Value = "8" });
                states.Add(new SelectListItem { Text = "BRACKENHURST", Value = "9" });
                states.Add(new SelectListItem { Text = "EDEN PARK", Value = "10" });
                states.Add(new SelectListItem { Text = "EDEN PARK WEST", Value = "11" });
                states.Add(new SelectListItem { Text = "ELANDSFONTEIN 108-IR", Value = "12" });
                states.Add(new SelectListItem { Text = "FLORENTIA", Value = "13" });
                states.Add(new SelectListItem { Text = "GENERAAL ALBERTSPARK", Value = "14" });
                states.Add(new SelectListItem { Text = "GREENFIELDS", Value = "15" });
                states.Add(new SelectListItem { Text = "KLIPRIVIERSBERG 106-IR", Value = "16" });
                states.Add(new SelectListItem { Text = "KERALA", Value = "17" });
public ActionResult LoadTown()
{
List li=新列表();
li.Add(新建SelectListItem{Text=“Select”,Value=“0”});
li.Add(新建SelectListItem{Text=“ALBERTON”,Value=“1”});
添加(新的SelectListItem{Text=“BEDFORDVIEW”,Value=“2”});
li.Add(新的SelectListItem{Text=“BENONI”,Value=“3”});
li.Add(新的SelectListItem{Text=“BOKSBURG”,Value=“4”});
添加(新的SelectListItem{Text=“BRAKPAN”,Value=“5”});
li.Add(新建SelectListItem{Text=“EDENVALE”,Value=“6”});
添加(新的SelectListItem{Text=“GERMISTON”,Value=“7”});
li.Add(新建SelectListItem{Text=“KEMPTON PARK”,Value=“8”});
li.Add(新的SelectListItem{Text=“NIGEL”,Value=“9”});
添加(新的SelectListItem{Text=“SPRINGS”,Value=“10”});
添加(新的SelectListItem{Text=“BRAKPAN”,Value=“11”});
li.Add(新的SelectListItem{Text=“EDENVALE”,Value=“12”});
ViewData[“城镇”]=li;
返回视图();
}
公共JsonResult GetSurburbs(字符串id)
{
列表状态=新列表();
开关(id)
{
“艾伯顿”案:
添加(新的SelectListItem{Text=“Select”,Value=“0”});
添加(新的SelectListItem{Text=“ALBERANTE”,Value=“1”});
添加(新的SelectListItem{Text=“AALBERTON”,Value=“2”});
添加(新的SelectListItem{Text=“ALBERTSDAL”,Value=“3”});
添加(新的SelectListItem{Text=“ALRODE”,Value=“4”});
添加(新的SelectListItem{Text=“ALRODE SOUTH”,Value=“5”});
添加(新的SelectListItem{Text=“ARTON”,Value=“6”});
添加(新的SelectListItem{Text=“BASSONIA ROCK”,Value=“7”});
添加(新的SelectListItem{Text=“BRACKENDOWNS”,Value=“8”});
添加(新的SelectListItem{Text=“BRACKENHURST”,Value=“9”});
添加(新SelectListItem{Text=“EDEN PARK”,Value=“10”});
添加(新的SelectListItem{Text=“EDEN PARK WEST”,Value=“11”});
添加(新的SelectListItem{Text=“elandfontein 108-IR”,Value=“12”});
添加(新的SelectListItem{Text=“Florenta”,Value=“13”});
添加(新的SelectListItem{Text=“GENERAAL ALBERTSPARK”,Value=“14”});
添加(新的SelectListItem{Text=“GREENFIELDS”,Value=“15”});
添加(新的SelectListItem{Text=“kliprivierberg 106-IR”,Value=“16”});
添加(新的SelectListItem{Text=“KERALA”,Value=“17”});
这是我在视图中的代码

<div class="form-group">
                                                        @Html.Label("Select Town", new { @class = "col-md-2 control-label" })
                                                        <div class="col-md-12">


                                                                @Html.DropDownList("Town", new SelectList(new string[] { "ALBERTON", "BEDFORDVIEW", "BENONI", "BOKSBURG", "BRAKPAN", "EDENVALE" , "GERMISTON", "KEMPTON PARK", "NIGEL", "SPRINGS", "BRAKPAN", "EDENVALE" }), new { @class = "dropdown1"})

                                                        </div>
                                                    </div>
                                                    <div class="form-group">
                                                        @Html.Label("Select Surburb", new { @class = "col-md-2 control-label" })
                                                        <div class="col-md-12">

                                                            @Html.DropDownList("Select Surburb", new SelectList(string.Empty, "Value", "Text"), "Please select a Surburb")


                                                        </div>
                                                    </div>

@Label(“选择城镇”,新的{@class=“col-md-2控制标签”})
@DropDownList(“Town”,new SelectList(新字符串[]{“ALBERTON”,“BEDFORDVIEW”,“BENONI”,“BOKSBURG”,“BRAKPAN”,“EDENVALE”,“Germston”,“KEMPTON PARK”,“NIGEL”,“SPRINGS”,“BRAKPAN”,“EDENVALE”}),new{@class=“dropdown1”})
@Label(“selectsurburb”,新的{@class=“col-md-2控制标签”})
@DropDownList(“selectsurburb”,newselectlist(string.Empty,“Value”,“Text”),“请选择一个Surburb”)
请看这里的Javascript代码

<script type="text/javascript">
$(document).ready(function () {
    //Dropdownlist Selectedchange event
    $("#Town").change(function () {
        $("#Surburb").empty();
        $.ajax({
            type: 'POST',
            url: '@Url.Action("GetSurburbs")', // we are calling json method

            dataType: 'json',

            data: { id: $("#Town").val() },
           // here we are get value of selected country and passing same value


            success: function (states) {
                // states contains the JSON formatted list
                // of states passed from the controller

                $.each(states, function (i, state) {
                    $("#Surburb").append('<option value="' + state.Value + '">' +
                     state.Text + '</option>');
                // here we are adding option for States

                });
            },
            error: function (ex) {
                alert('Failed to retrieve Surburbs.' + ex);
            }
        });
        return false;
    })
});
</script>

$(文档).ready(函数(){
//下拉列表Selectedchange事件
$(“#镇”)。更改(功能(){
$(“#Surburb”).empty();
$.ajax({
键入:“POST”,
url:'@url.Action(“GetSurburbs”),//我们正在调用json方法
数据类型:“json”,
数据:{id:$(“#Town”).val()},
//这里我们得到所选国家的值并传递相同的值
成功:功能(状态){
//states包含JSON格式的列表
//从控制器传递的状态数
$。每个(状态,功能(i,状态){
$(“#Surburb”)。附加(“”)+
state.Text+“”);
//这里我们为各州添加了一个选项
});
},
错误:函数(ex){
警报('未能检索Surburbs.'+ex);
}
});
返回false;
})
});

显示的错误消息是什么?检索Surburbs失败,这是我的JQuery代码中的错误。请将ajax类型更改为“GET”。如果将其更改为GET,则需要更改公共JsonResult GetSurburbs(字符串id)的最后一行允许GETs-您没有包括最后一行,因此可能是您没有从操作中正确返回JSON-请添加
GetSurburbs的最后一行(ps it's suburbies)这是返回JSON的最后一行(新的SelectList(states,“Value”,“Text”);}