Вместо того, чтобы передавать ваш массив в качестве параметра непосредственно из C #, отправьте вам массив как переменную в ваш JavaScript.Затем вы можете отправить его в качестве параметра в вашу функцию:
var GatepassIDs = defaultView.ToTable().AsEnumerable().Select(r => r.Field<string>("GatePassID")).ToArray<string>();
StringBuilder sb = new StringBuilder();
sb.Append("<script>");
sb.Append("var yourGatePassIDArray= new Array;");
foreach(string str in GatepassIDs)
{
sb.Append("yourGatePassIDArray.push('" + str + "');");
}
sb.Append("FillGatePassIDSmartBox(yourGatePassIDArray)");
sb.Append("</script>");
Page.ClientScript.RegisterStartupScript(this.GetType(), "CallMyFunction", sb.ToString());
И затем использовать это в своем JavaScript как:
function FillGatePassIDSmartBox(yourGatePassIDArray) {
$('#<%=txt_gatepassID.ClientID%>').autocomplete({
source: yourGatePassIDArray
});
Вы должны будете объявить свой массив в глобальном контексте.