2010-08-12 48 views
-1

我已經得到了與本地數據源,但不是遠程工作。它使用Jquery庫,我遵循Jquery UI站點上的說明。這是我有的代碼(不起作用)。任何人都可以a)修改這段代碼來工作b)顯示一個工作例子的代碼?感謝:JQuery自動完成和ASP .NET MVC數據庫作爲數據源

JQUERY

$('#countries').autocomplete({ 
     source: "/Trip/Lookup", 
     minLength: 0, 
     focus: function (event, ui) { 
      $('#countries').val(ui.item.label); 
      return false; 
     }, 
     select: function (event, ui) { 
      return false; 
     } 
    }).data("autocomplete")._renderItem = function (ul, item) { 
     return $("<li></li>") 
      .data("item.autocomplete", item) 
      .append("<a>" + item.label + "</a>") 
      .appendTo(ul); 
    }; 

的ActionResult

public ActionResult Lookup(string q, int limit) 
    { 
     List<DestinationVM> list = new List<DestinationVM>(); 
     list.Add(new DestinationVM { Destination = "England", Cost = 12 }); 
     list.Add(new DestinationVM { Destination = "New Zealand", Cost = 10 }); 
     list.Add(new DestinationVM { Destination = "Australia", Cost = 8 }); 

     var data = from s in list select new { s.Destination, s.Cost }; 

     return Json(data); 
    } 
+0

可能重複[我如何調試我的JavaScript代碼?](http://stackoverflow.com/questions/988363/how-can-i-debug-my-javascript-code) – Liam 2015-09-10 13:49:10

回答

0

更改您的行爲定義是這樣的:

public ActionResult Lookup(string term) 

的自動完成插件發送一個名爲term的查詢參數的請求其中包含用戶輸入到的字符文本框到目前爲止。

此外,嘗試改變你的LINQ投影到這樣的:

var data = from s in list select new { label = s.Destination, value = s.Cost }; 

的自動完成插件預計值中的任一個平面陣列或具有一個標籤和值屬性JSON對象數組。

+0

這次沒解決我的問題。任何其他想法? – user375564 2010-08-12 19:15:52

+0

@user更新了您需要製作的另一個修復程序的答案。 – joshperry 2010-08-13 19:12:53

0

控制器上的操作錯誤。它應該是:

更改在輸入參數中,幷包含返回參數JsonRequestBehavior.AllowGet。現在起作用了。

public ActionResult Lookup(string term) 
    { 

     var result = _TripRep.GetAutoCompleteDestination(term, 5); 

     var data = from s in result select new { label = s.Destination, value = s.Cost }; 

     return Json(data, JsonRequestBehavior.AllowGet); 

    } 
相關問題