在 jquery url 操作中动态生成 api url 参数来填充下拉列表

Dynamically generate api url parameters in jquery url action to populate dropdown list

我的 VS 项目中有一个视图,它具有三个下拉列表,其中 2 个是级联的,需要根据父控件的更改进行填充。我的工作流程非常适合静态 url 调用,但我需要动态添加数据,但运气不好。下面是代码的工作静态部分,也是我尝试使其动态工作的多次迭代之一。

如果需要,我下面的示例数据层次结构是降序的 order:Item(例如食物)、类型(例如水果)、名称(例如香蕉)

感谢任何意见。

工作静态代码:

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

假设 "api" 是控制器,"types" 是动作,请尝试将 url 变量替换为:

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

sellItem 是一个 JavaScript 变量,需要完全保留在客户端上。或者你可以使用这种技术,这样你就可以使用在 Url.Action:

中传递的自然 URL 参数

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