2017-02-14 81 views
-1

我試圖改變另一種選擇的值dropdownlistforDropdownlistfor不排空

@Html.DropDownListFor(model => model.Id1, (List<SelectListItem>)ViewBag.List1) 

後排空由Dropdownlistfor

@Html.DropDownListFor(model => model.Id2, (List<SelectListItem>)ViewBag.List2) 

創建一個下拉列表這是我的javascript代碼

 function changeList(value, that) { 
      //value is equal to the selected value of List2 
      var self = $(that).find("#Id2"); 
      $.ajax({ 
       url: '@Url.Action("method", "controller")', 
       method: 'POST', 
       data: { 'value': value }, 
       dataType: 'json', 
       success: function (data, textStatus, jqXHR) { 
        self.empty(); 
        $.each(data, function (key, item) { 
         self.append($("<option></option>").val(item.Value).text(item.Text)); 
        }); 
       }, 
       error: function (jqXHR, textStatus, errorThrown) { 
       } 
      }); 
     } 

我的問題是,當我更改List1的選定值時,它管理t o更改List2的選項,但不顯示它。

它在我更改List1的選定值之前沒有點擊或與List2有任何交互時起作用。

它不會改變列表2的選定值,然後更改列表1的選定值。(它的工作原理,但它不會正確顯示它的視圖)。

編輯

=>我的JavaScript的工作< =,它不會只是正確顯示它來改變我的選擇列表1的值之前,如果我與它進行交互的觀點!

編輯2

我在控制器方法

[HttpPost] 
    public JsonResult method(long value) 
    { 
     try 
     { 
      var items= GetItems(value); 
      return Json(new List<SelectListItem>(items)); 
     } 
     catch (Exception ex) 
     { 
      return Json(new { Result = Error, ex.Message }); 
     } 
    } 
+0

你的控制器動作看起來像什麼在ajax調用鱈魚è? –

+0

已編輯帖子(請參閱編輯2) – rvsntn

+0

你在哪裏以及如何調用'changeList()'? –

回答

0

我找到了解決方案,我不得不把這兩行的循環中的每個

self.selectmenu("instance").destroy(); 
self.selectmenu({}); 

我忘的事實,我後我正在使用jquery ..對不起,所有