2017-01-09 67 views
0

我在我的VS項目中有一個視圖,它有三個下拉列表,其中2個是級聯的,需要在父控件的變化上填充。我的工作流程對靜態url調用非常有用,但我需要動態添加數據,而且我沒有任何運氣。下面是代碼的靜態工作部分,以及我嘗試動態工作的許多迭代之一。在jquery url action中動態生成api url參數來填充下拉列表

如果需要,例如數據層次我有下面是按降序排列:項目(例如食品),類型(例如水果),名稱(例如香蕉)

欣賞任何輸入。

工作靜態代碼:

function dynamicTypeList() { 
     $.ajax({ 
      url: '@Url.Action("", "api/types/1")', 

      success: function (data) { 
       $("#Type_Id").empty(); 
       $("#Name_Id").empty(); 
       $("#Type_Id").append("<option value>Select Type (NEW)</option>"); 
       $("#Name_Id").append("<option value>Select Name (NEW)</option>"); 
       for (var i in data) { 
        $("#Type_Id").append("<option value='" + (i + 1) + "'>" + $(data)[i] + "</option>"); 
       } 
      } 
     }); 
    }; 

破碎動態代碼:

function dynamicTypeList() { 
     selItem = $("#Item_Number").val(); 
     console.log(selItem); 
     $.ajax({ 
      url: '@Url.Action("", "api/types/" + selItem)', 

      success: function (data) { 
       $("#Type_Id").empty(); 
       $("#Name_Id").empty(); 
       $("#Type_Id").append("<option value>Select Type (NEW)</option>"); 
       $("#Name_Id").append("<option value>Select Name (NEW)</option>"); 
       for (var i in data) { 
        $("#Type_Id").append("<option value='" + (i + 1) + "'>" + $(data)[i] + "</option>"); 
       } 
      } 
     }); 
    }; 

回答

0

假設 「API」 是控制器和 「類型」 是行動,嘗試更換url變量:

url: '@Url.Action("types", "api")' + sellItem, 

sellItem是一個JavaScript變量,需要完全保留在客戶端上。或者你可以使用這種技術,所以你可以使用自然的URL參數傳遞中Url.Action

How to access javascript variable within @URL.Action()

+0

工作就像一個魅力。非常感激。 – user2653814