2017-02-14 73 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 ..对不起,所有