Jquery $.getJson重用方法,用于呈现2个不同的控件

Jquery $.getJson重用方法,用于呈现2个不同的控件,jquery,Jquery,我正在做一个$.getJson调用,我希望能够将其重新用于不同的ui呈现。 我想使用GetUserRoles(userName)方法来呈现具有2个不同调用的2个ui控件。第一个调用用于填充dropdownlist。现在我想再次调用这个方法,它将在同一页上绘制一个UL列表。我如何用同样的方法来做呢 function GetUserRoles(userName) { var param = { userName: userName }; $.getJ

我正在做一个$.getJson调用,我希望能够将其重新用于不同的ui呈现。 我想使用GetUserRoles(userName)方法来呈现具有2个不同调用的2个ui控件。第一个调用用于填充dropdownlist。现在我想再次调用这个方法,它将在同一页上绘制一个UL列表。我如何用同样的方法来做呢

 function GetUserRoles(userName) {
            var param = { userName: userName };
            $.getJSON(userRoleController, param, function (data) { GetUserRolesSuccess(data, userName); });
        }

        function GetUserRolesSuccess(data,userName) {
            $("#userdetails #roles").html("");
            if (data.length != 0) {
                var roles = "<table class='rolesTable' cellpadding='0' cellspacing='0' border='0'>";
                for (var i = 0; i <= data.length - 1; i++) {
                    if (data[i] != undefined) roles += "<tr><td>" + data[i] + "</td><td><a href='#' onclick=\"RemoveUserFromRole('" + data[i] + "','" + userName + "');\">Remove</a></td></tr>";
                }
                roles += "</table>";
            }
            else {
                roles = "<p class='norolesavailable'>No roles assigned to user.</p>";
            }

            $("#userdetails #roles").html(roles); 
        }
函数GetUserRoles(用户名){
var param={userName:userName};
$.getJSON(userRoleControl,param,函数(数据){getUserRolessucces(数据,用户名);});
}
函数GetUserRolesSuccess(数据,用户名){
$(“#用户详细信息#角色”).html(“”);
如果(data.length!=0){
var角色=”;

对于(var i=0;i向
GetUserRoles
getuserrollessucces
添加一个参数,该参数指示要呈现的控件类型,因此方法签名看起来像
GetUserRoles(userName,controlToRender)
getuserrollessuccess(data,userName,controlToRender)
。将
GetUserRoles
修改为:

 function GetUserRoles(userName, controlToRender) {
     var param = { userName: userName };
     $.getJSON(userRoleController, param, function (data) { GetUserRolesSuccess(data, userName, controlToRender); });
 }
最后添加一个根据新参数呈现控件的条件,例如:

function GetUserRolesSuccess(data, userName, controlToRender) {
    if(controlToRender == 'ul') {
        // make a ul
    } else if(controlToRender == 'whatever') {
        // make a whatever
    }
}
现在只需调用
GetUserRoles
传入新参数,例如:

GetUserRoles('Jeff123', 'ul');
GetUserRoles('Jeff123', 'foo');

为什么要对两种不同类型的调用使用同一个函数?它是同一个调用,但我使用输出结果呈现两种不同的html。例如,对方法的第一个调用返回dropdownlist,第二个调用返回list元素。