0

NamesModelに、すべての名前をフェッチして名前のリストを返すメソッドがあります。

public static List<NamesModel> GetAllNames()
{
    List<NamesModel> names = new List<NamesModel>();

    // 
    // code to fetch records
    //

    return names;
}

私のコントローラーでは:

public ActionResult Index()
{
   NamesModel model = new NamesModel();
   model.GetAllNames();

   return View(model);
}

ビューには、テキストボックスがあります。

@Html.TextBox("search-name")

今私のJavaScriptで、モデル(メソッドから)またはコントローラーから変数にすべての名前をフェッチしたいと思います。次に例を示します。

<script type="text/javascript">

 $(function () {

     var names = ...........
     $(document).ready(function () {
          $('#search-name').autocomplete({
               source: names
          });
     });
 });
</script>

ハードコーディングを使用すると機能しますが、データベースに保存されている名前を使用したいと思います。出来ますか?

ハードコーディングの例:

var names = ["abc", "xyz"];
4

3 に答える 3

1

これにはAjaxとJsonを使用できます

コントローラの場合:

[HttpPost]
public JsonResult GetAllNames()
{
   List<NamesModel> names = new List<NamesModel>();

   // 
   // code to fetch records
   //

   return Json(names);
}

または、ブラウザでjsonを表示できるようにデバッグする場合:

public JsonResult GetAllNames()
{
   List<NamesModel> names = new List<NamesModel>();

   // 
   // code to fetch records
   //

   var result = Json(names);
   result .JsonRequestBehavior = JsonRequestBehavior.AllowGet;
   return result ;
}

(これは実際にはjqueryですが、document.readyを使用しているため、すでにjqueryが含まれていることに注意してください)

JavaScriptで、上記のメソッドを呼び出します。

$.getJSON(@Url.Content("~/ControllerName/GetAllNames/"), function (result) {
         var ListWithNames = data;
});
于 2012-10-26T10:58:24.320 に答える
0

「source」オプションプロパティは、jsonデータを返すURLを指す文字列にすることができます(http://api.jqueryui.com/autocomplete/#option-source

于 2012-10-26T10:57:32.640 に答える
0

私の問題に対する最善の解決策は、次のブログにあります。

私を助けようとしてくれたすべての人に感謝します。

于 2012-10-26T13:57:03.753 に答える