2017-01-09 2 views
0

Ich habe eine View in meinem VS-Projekt mit drei Dropdown-Listen, von denen 2 kaskadiert sind und die Änderung des übergeordneten Steuerelements ausfüllen müssen. Der Workflow, den ich habe, funktioniert hervorragend für statische URL-Aufrufe, aber ich muss die Daten dynamisch hinzufügen, und ich habe kein Glück. Unten ist ein funktionierender statischer Codeabschnitt und eine meiner vielen Wiederholungen eines Versuchs, um es dynamisch arbeiten zu lassen.Dynamische Generierung von API-URL-Parametern in der jquery-URL-Aktion zum Auffüllen der Dropdown-Liste

Bei Bedarf der Beispieldatenhierarchie ich unten habe, ist in absteigender Reihenfolge: Artikel (zum Beispiel Lebensmittel), Typ (zum Beispiel Obst), Name (zum Beispiel Bananen)

jede Eingabe zu schätzen wissen.

Arbeits Statische Code:

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>"); 
       } 
      } 
     }); 
    }; 

Gebrochene Dynamic Code:

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>"); 
       } 
      } 
     }); 
    }; 

Antwort

0

Unter der Annahme, "api" ist der Controller und "Typen" ist die Aktion, versuchen Sie die URL-Variable ersetzt mit:

sellItem ist eine JavaScript-Variable und muss vollständig auf dem Client bleiben. Oder können Sie diese Technik verwenden, so dass Sie die natürlichen URL-Parameter innerhalb Url.Action vorbei verwenden können:

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

+0

wie ein Charme. Sehr geschätzt. – user2653814

Verwandte Themen