0

結果をフィルタリングしようとしていますが、select2ドロップダウンで正しく機能するようにajaxクエリを設定する方法がわかりません。私が言えることから、あなたはデータを使用することになっていますが、それは値だけを渡して私の呼び出しをフィルタリングすることではありません。

これが私のajaxです:

            $('#e1').select2({
                placeholder: "Select an ingredient...",
                minimumInputLength: 2,
                ajax: {
                    url: "../api/IngredientChoices",
                    data: 'mi',
                    dataType: "json",
                    quietMillis: 500,
                    data: function (term, page) {
                        return {
                            q: term,
                            page_limit: 10,
                            page: page

                        };
                    },
                    results: function (data, page) {
                        var more = (page * 10) < data.length;
                        console.log(more);
                        console.log(data);
                        return { results: data, more: more };

                    },
                    formatResult: function (post) {
                        markup = '<strong>' + post.text + '</strong>';
                    }
                }
            });

これが私のコントローラーです:

    public List<Models.IngredientChoices> Get(string param)
    {
        var choices = (from i in _context.IngredientItems_View(param)

                       select new Models.IngredientChoices
                       {
                           id = i.ItemID,
                           text = i.ConcatName,
                       });
        return choices.ToList();
    }

ajax呼び出しは、現在すべての値を返します。

4

2 に答える 2

0

data:ajaxに重複するメンバーがあります。メンバーは1つだけにする必要があります。

編集:ただの盗品ですが、おそらくあなたはクラスが必要です:

class myparam {
  string q ;
  int page_limit;
  int page;
}
//decorate for JSON
public List<Models.IngredientChoices> Get(myparm param)
{
    var choices = (from i in _context.IngredientItems_View(param.q)
于 2013-01-25T20:04:45.370 に答える
0

@jmordykが言ったように、答えは、私のq:用語がC#の私のパラメータと一致しなかったということでした。この行を変更しました:

public List<Models.IngredientChoices> Get(string param)

することが:

public List<Models.IngredientChoices> Get(string q)
于 2013-01-25T21:38:24.937 に答える