asp.net mvc4 を使用して、Select2 Jquery アドオンを使用するドロップダウンに入力しようとしています。私はすでにstackoverflowを検索しており、以下のような関連トピックを見つけました。
MVC 4 のデータベースから Select2 ドロップダウン ボックスに入力します。
しかし、私のプロジェクトでは、この作業を行うことができません。
私からしてみれば
<div class="control-group">
<label class="control-label">Proje Adı</label>
<div class="controls">
<select id="PROJECTID">
</select>
</div>
</div>
In my controlle
ri は JSON を返すアクションを作成し、このアクションをマニュエル エントリでテストしましたが、問題ありません。JSONの結果を見ることができます。
public JsonResult FetchItems(string query)
{
List<CRM_PROJECTS> projectList = db.CRM_PROJECTS.Where(p => p.IS_VALID == 1 && p.NAME != null).ToList(); //fetch list of items from db table
List<CRM_PROJECTS> resultProjectList = new List<CRM_PROJECTS>(); //create empty results list
foreach (var item in projectList)
{
//if any item contains the query string
if (item.NAME.IndexOf(query, StringComparison.OrdinalIgnoreCase) >= 0)
{
resultProjectList.Add(item); //then add item to the results list
}
}
//resultProjectList.Sort(delegate(Item c1, Item c2) { return c1.ItemName.CompareTo(c2.ItemName); }); //sort the results list alphabetically by ItemName
var serialisedJsonProjects = from result in resultProjectList //serialise the results list into json
select new
{
name = result.NAME, //each json object will have
id = result.ID //these two variables [name, id]
};
return Json(serialisedJsonProjects, JsonRequestBehavior.AllowGet); //return the serialised results list
}
select2.js ファイルで、コードの Jquery 部分を実装しました。
$(document).ready(function () {
$("#PROJECTID").select2({
placeholder: "Type to find a Contract",
allowClear: true,
minimumInputLength: 2,
ajax:{
cache: false,
dataType: "json",
type: "GET",
url: "/AddNewOpp/FetchItems",
data: function (searchTerm) {
return { query: searchTerm };
},
results: function (data) {
return {results: data};
}
},
escapeMarkup: function (m) { return m; }
});
});
ドロップダウンにデータを入力できませんでした。jquery の ajax 部分で「/AddNewOpp/FetchItems」という URL を呼び出すことができないようです。