2017-08-06 90 views
-5

我正在嘗試實現jQuery自動完成。我覺得一切都設置得很好,但它不工作。jQuery自動完成與JSON不兼容

SearchSkies方法

public JsonResult SearchSkies(string query) 
     { 
      SkiDao skiDao = new SkiDao(); 
      IList<Ski> skies = skiDao.SearchSkies(query); 

      List<string> brands = (from Ski s in skies select s.Brand).ToList(); 
      return Json(brands, JsonRequestBehavior.AllowGet); 
     } 

腳本中查看

<script type="text/javascript"> 

    $(function() { 

    $("#searchBox").autocomplete({ 
     source: function(request, response) { 
     $.ajax({ 
      url: '@Url.Action("SearchSkies","Skies")', 
      dataType: "json", 
      data: { 
      query: request.term 
      }, 
      success: function (data) { 
       response(data); 
      } 
     }); 
     }, 
     minLength: 2, 
    }); 
    }); 

</script> 
+0

什麼是不工作?您在瀏覽器控制檯中遇到什麼錯誤? –

+0

我沒有收到任何錯誤,自動完成只是沒有完成任何事情...... @StephenMuecke –

+1

您是否從服務器獲取品牌?您首先需要調試代碼並查看是否有任何項目從服務器返回或不。 –

回答

0

你沒有提的Ajax調用的請求類型(GET/POST)。

$(document).ready(function() { 
     $("#searchBox").autocomplete({ 
      source: function(request,response) { 
       $.ajax({ 
        url: "/Skies/SearchSkies", 
        type: "POST", <<---- 
        dataType: "json", 
        data: { query: request.term }, 
        success: function (data) { 
         response($.map(data, function (item) { 
          return { label: item.Name, value: item.Name }; 
         }))  
        } 
       }) 
      }, 
      messages: { 
       noResults: "", results: "" 
      } 
     }); 
    }) 

而且控制器

public class SkiesController : Controller 
{ 
     // GET: Home 
     [HttpGet] 
     public ActionResult Index() 
     { 
      return View(); 
     } 
     [HttpPost] 
     public JsonResult SearchSkies(string query) 
     {     
     SkiDao skiDao = new SkiDao(); 
     IList<Ski> skies = skiDao.SearchSkies(query); 

     List<string> brands = (from Ski s in skies select s.Brand).ToList(); 
     return Json(brands, JsonRequestBehavior.AllowGet); 
     } 
} 
+0

仍然是同樣的問題... –

+0

不要說像'同樣的問題'的模糊聲明,你是否調試過,看看控制器是否被擊中,如果沒有在瀏覽器控制檯中有什麼。 –