2012-04-04 123 views
0

我查看代碼:jQuery的自動完成功能+ ASP.NET MVC 3不顯示結果

腳本和CSS:

<link href="@Url.Content("~/Content/jquery-ui-1.8.18.custom.css")" rel="stylesheet"type="text/css" /> 
<script src="@Url.Content("~/Scripts/jquery-ui-1.8.18.custom.min.js")" type="text/javascript"></script> 

輸入文本:

@Html.TextBoxFor(model => model.Filter.HouseName, new { style = "width: 205px", onKeyUp = "updateHouseNames()" }) 

的Javascript:

function updateHouseNames() { 
    var houseArray = new Array(); 

    $.post('@Url.Action("LoadHouses")', { houseName: $("#Filter_HouseName").val() }, function(houses) { 
     houseArray = houses; 
    }); 

    $("#Filter_HouseName").autocomplete({ 
     source: houseArray 
    }); 
} 

控制器方法:

[HttpPost] 
public JsonResult LoadHouses(string houseName) 
{ 
    var houses = this.HouseService.SelectByName(houseName).Select(e => new String(e.Name.ToCharArray())).ToArray(); 

    return Json(houses); 
} 

我調試的JavaScript和房屋被選中..但結果不顯示在自動完成。爲什麼?

回答

1

我真的不認爲你應該這樣做。如果您需要自定義邏輯,請在autocomplete方法上使用回調:

$(function() { 
    $('#Filter_HouseName').autocomplete({ 
     minLength: 1, 
     source: function (request, response) { 
      var term = request.term; 
      var houseArray = new Array(); 

      $.post('@Url.Action("LoadHouses")', { houseName: term }, function(houses) { 
       houseArray = houses; 
       response(houseArray); 
      });     
     } 
    }); 
}); 
+0

爲什麼我這樣做的方式不起作用?我用這個例子:http://jqueryui.com/demos/autocomplete/ – 2012-04-04 16:52:54

+0

你用過哪個例子?這一頁上有很多例子。 – Dismissile 2012-04-04 19:05:35

+0

第一個。 「默認功能」。 – 2012-04-05 11:59:17