アプリに郵便番号のオートコンプリートを実装しました。Firebugでデバッグしていますが、コンソールにアクションが実行されていることがわかり、結果のリストに郵便番号のリストが表示されますが、デバッグ時に実際のリストが表示されません。
これが私のCustomersコントローラーのアクションです:
//the autocomplete request sends a parameter 'term' that contains the filter
public ActionResult FindZipCode(string term)
{
string[] zipCodes = customerRepository.FindFilteredZipCodes(term);
//return raw text, one result on each line
return Content(string.Join("\n", zipCodes));
}
これがマークアップです(省略形)
<% using (Html.BeginForm("Create", "Customers")) {%>
<input type="text" value="" name="ZipCodeID" id="ZipCodeID" />
<% } %>
スクリプトをロードする順序は次のとおりです。
<script type="text/javascript" src="/Scripts/jquery-1.4.2.js"></script>
<script type="text/javascript" src="/Scripts/jquery.ui.core.js"></script>
<script type="text/javascript" src="/Scripts/jquery.ui.widget.js"></script>
<script type="text/javascript" src="/Scripts/jquery.ui.position.js"></script>
<script type="text/javascript" src="/Scripts/jquery.ui.autocomplete.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$("#ZipCodeID").autocomplete({ source: '<%= Url.Action("FindZipCode", "Customers") %>'});
});
</script>
私が行方不明になっていることは明らかですか?スクリプトが郵便番号のリストを取得していると言っているように、テストしても郵便番号がページに表示されません。
編集:私はfirebugで見たものを示す画像を追加しました-郵便番号を取り戻したようですが、ドロップダウンが表示されません。
また、テキストボックスを更新して、次のようにui-widgetdiv内に配置しました。
<div class="ui-widget">
<input type="text" name="ZipCodeID" id="ZipCodeID" />
</div>
これは私が使用しているスクリプトです:
<script type="text/javascript">
$(document).ready(function() {
$("#ZipCodeID").autocomplete('<%= Url.Action("FindZipCode", "Customers") %>');
});
</script>