0

我的 VS 项目中有一个视图,其中包含三个下拉列表,其中 2 个是级联的,需要填充父控件的更改。我的工作流程非常适合静态 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>");
               }
           }
       });
   };
4

1 回答 1

0

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

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

sellItem 是一个 JavaScript 变量,需要完全保留在客户端上。或者您可以使用这种技术,这样您就可以使用在内部传递的自然 URL 参数Url.Action

如何在@URL.Action() 中访问 javascript 变量

于 2017-01-09T14:42:01.017 回答