2016-10-26 6 views
0

머리자동 완성 오류 문자열 []를 반환하는 방법을 선택 System.String []

 var ProductNames; 
    $(document).ready(function() { 
     $("#inputSuccess2").autocomplete({ 
      source: function (request, response) { 
       var texttyped = $("#inputSuccess2").val(); 
       $.ajax({ 
        url: "@Url.Content("~/Products/FetchName")", 
        dataType: "json", 
        data: "search=" + texttyped, 
        type: "get", 
        contentType: "application/json; charset=utf-8", 
        success: function (data) { 
         var msg = Assessments_JqueryAutoComplete.AutoComplete(request.term).value; //(ajaxpro functions) 
         response(msg.d); 
         response($.map(data, function (item) { 
          return { 


           //value: '' + item 

          } 
         } 
         )) 
        }, 
        error: function (XMLHttpRequest, textStatus, errorThrown) { 
         alert("Error: " + textStatus); 
        } 
       }); 
      }, 
      minLength: 1, 
      select: function (event, ui) { 

       window.location = "/Product/EditSingleProduct?PrdNm=" + ui.item.value; 

      } 
     } 
       ) 
    }); 

내 스크립트 내 컨트롤러는

public string[] FetchName(String search){ 
    SqlConnection SearchProduct = new SqlConnection(ConfigurationManager.ConnectionStrings["DefaultConnection"].ToString()); 

     SearchProduct.Open(); 
     SqlCommand cmd = SearchProduct.CreateCommand(); 
     List<string> Product1 = new List<string>(); 
     cmd.CommandText = String.Format("(SELECT [ProductName],[ProductType] FROM [Rush].[dbo].[Product] where ProductName like '%{0}%')", search); 
     SqlDataReader reader = cmd.ExecuteReader(); 

     while (reader.Read()) 
     { 
      Product1.Add(reader.GetString(0)); 

     } 
     SearchProduct.Close(); 
     return Product1.ToArray(); 
} 

내가 수동으로 확인하는 동안 구문 분석 오류를 얻고있다 출력은 입니다. System.String []

그래서이 드롭 다운 목록에서 문자열 []을 구문 분석 할 수 없다고 생각합니다. 반환 값을 확인했기 때문에 11 개 항목 귀하의 아약스는 JSON 형태의 응답을 기대하고있다

답변

0
public JsonResult FetchName(String search){ 
    SqlConnection SearchProduct = new SqlConnection(ConfigurationManager.ConnectionStrings["DefaultConnection"].ToString()); 

     SearchProduct.Open(); 
     SqlCommand cmd = SearchProduct.CreateCommand(); 
     List<string> Product1 = new List<string>(); 
     cmd.CommandText = String.Format("(SELECT [ProductName],[ProductType] FROM [Rush].[dbo].[Product] where ProductName like '%{0}%')", search); 
     SqlDataReader reader = cmd.ExecuteReader(); 

     while (reader.Read()) 
     { 
      Product1.Add(reader.GetString(0)); 

     } 
     SearchProduct.Close(); 
     return Json(Product1.ToArray(),JsonRequestBehavior.AllowGet); 
} 
+0

사전에 배열 덕분에, 당신이 먼저 당신은 JSON 형식으로 변환 할 필요에 대한 응답으로 문자열의 배열을 보낼 수 없습니다. – DevD

+0

정확하게 감사합니다. – user3857870