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

时间:2017-01-09 14:36:11

标签: javascript jquery asp.net-mvc url-action

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

如果需要,我在下面的示例数据层次结构按降序排列:项目(例如食物),类型(例如水果),名称(例如香蕉)

感谢任何输入。

使用静态代码:

$().ready(function () {
    $('body').on('click', '#deletebtn', function () {

        $("#example1 tr").each(function () {
            var rowSelector = $(this);
            if (rowSelector.find("input[type='checkbox']").prop('checked'))
            {
                //THE MARKUP SHOWING THE ID IS NOT AVAILABLE
                //POST A TABLE ENTRY TO CLEAR UP
                var id = rowSelector.find('td').first().next().html();
                var sendObj = {Id : id};
                //USE JSON OBJECT
                $.ajax({
                    url : "/page.aspx/deleteRecord",//CHANGE TO YOUR URL
                    dataType: "json",
                    data: sendObj,
                    type: "POST",
                    success: function () {
                        alert("entry deleted");
                    }
                });
                rowSelector.remove();
            }
        });

    });
});

动态代码破碎:

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

1 个答案:

答案 0 :(得分:0)

假设&#34; api&#34;是控制器和&#34;类型&#34;是动作,尝试用以下代码替换url变量:

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

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

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