2016-11-21 95 views
0

我有一個美國各州的下拉列表。當用戶選擇州或縣/帕裏什的另一個下拉列表時將被填充。我正在從存儲過程中提取信息填充縣下拉列表。我遇到的問題是,它正在爲每個縣返回對象對象,我不知道該如何解決此問題。使用JQuery AJAX的MVC級聯下拉菜單

這裏是控制器代碼

public ActionResult FillCountyList(string State) 
{ 
    Models.CountyList mod = new CountyList(); 
    mod.TheState = State; 
    List<ListCountiesByState_Result> Counties = mod.ListCounties(); 
    return Json(Counties, JsonRequestBehavior.AllowGet); 
}  

我也試圖在我的控制下,它也返回一個列表顯示對象的對象每個縣

public JsonResult FillCountyList(string State) 
{ 
    IEnumerable<SelectListItem> Counties = db.ListCountiesByState(State).Select(c => new SelectListItem { 
      Value = c.County, 
      Text = c.County 
    }).ToList(); 
    return Json(Counties, JsonRequestBehavior.AllowGet); 
} 

這裏是jQuery代碼在視圖

$('#State').change(function() { 
    var stateid = $('#State').val(); 
    $.ajax({ 
     url: '/Profile/BackgroundData/FillCountyList', 
     type: 'GET', 
     datatype: 'JSON', 
     data: { State: stateid }, 
     success: function (result) { 
      $('#CountyOrParrish').html(''); 
      $('#CountyOrParrish').append($('<option>Make Selection</option>')); 
      $.each(result, function (i, item) { 
       $('#CountyOrParrish').append($('<option></option>').text(item)); 
      }); 
     } 
    }); 
}); 

回答

0

檢查您的方法是否正確返回國家/地區。也改變:

$('<option></option>').text(item)); 

到:

$('<option></option>').val(item.Value).html(item.Text)); 
+0

我已經試過了。它仍然返回對象對象的每個值 –

+0

你檢查了你的'FillCountyList'方法返回正確嗎? – Hadee

+0

好吧,我試着用第二個控制器的例子,這個工程!謝謝 –

0

您可以訪問您的縣屬性javascr ipt只是使用「。」因爲結果中的每個項目都是json對象:

$.each(result, function (i, item) { 
      $('#CountyOrParrish').append($('<option></option>').text(item.CountyName)); 
     }); 
+0

我知道它應該工作,但它返回以下消息「智能感知無法確定此表達準確的完成列表所提供的列表中包含的所有標識符。文件。」然後在頁面上它只顯示文本的空字符串。 –