2017-08-06 98 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

不要说像'同样的问题'的模糊声明,你是否调试过,看看控制器是否被击中,如果没有在浏览器控制台中有什么。 –