ASP.NET MVC 4 응용 프로그램에서 작업 중입니다. 내 응용 프로그램에서 내 드롭 다운 목록을 Select 2 plugin으로 대체하려고합니다. 현재 ASP.NET MVC 컨트롤러에서 데이터를로드하는 데 문제가 있습니다.ASP.NET MVC에서 Select 2 사용
public class MyController : System.Web.Http.ApiController
{
[ResponseType(typeof(IEnumerable<MyItem>))]
public IHttpActionResult Get(string startsWith)
{
IEnumerable<MyItem> results = MyItem.LoadAll();
List<MyItem> temp = results.ToList<MyItem>();
var filtered = temp.Where(r => r.Name.ToLower().StartsWith(startsWith.ToLower());
return Ok(filtered);
}
}
이 코드에 중단 점을 설정, 내가 startsWith
이 값을 중단 점 수단을 명중되고 있다는 사실을 (내가 생각하는) 아래에있는 내 url
속성이 설정되어 있지 않습니다주의 사항 : 내 컨트롤러는 다음과 같습니다 옳은. 그러나 왜 startsWith
이 설정되어 있는지 잘 모르겠습니다. 나는 다음과 같은 자바 스크립트를 사용하여 선택 2에서 호출 해요 :이 코드를 실행하면
function formatItem(item) {
console.log(item);
}
function formatSelectedItem(item) {
console.log(item);
}
$('#mySelect').select2({
placeholder: 'Search for an item',
minimumInputLength: 3,
ajax: {
url: '/api/my',
dataType: 'jsonp',
quietMillis: 150,
data: function (term, page) {
return {
startsWith: term
};
},
results: function (data, page) {
return { results: data };
}
},
formatResult: formatItem,
formatSelection: formatSelectedItem
});
, 내가 다운 목록 선택이 드롭 볼 수있는 유일한 것은 Loading failed
입니다. 그러나, 나는 내 api가 불려지는 것을 알고있다. 나는 200 명이 돌아올 것을 피들러에서 볼 수있다.
[
{"Id":1,"TypeId":2,"Name":"Test", "CreatedOn":"2013-07-20T15:10:31.67","CreatedBy":1},{"Id":2,"TypeId":2,"Name":"Another Item","CreatedOn":"2013-07-21T16:10:31.67","CreatedBy":1}
]
왜 이것이 작동하지 않는지 이해할 수 없습니다. (가) documentation에서
글쎄, 코드 스 니펫에'$ ('# mySelect)'에'''가 없습니다. 이 문제가 프로젝트에서 수정 되었습니까? – jrummell
예. 이제 코드 스 니펫을 수정했습니다. – user70192
json에 'text'라는 속성이 표시되지 않습니다. funciton 핸들러에서 어떻게 든 비헤이비어를 오버라이드하지 않으면 각 항목에 'id'및 'text' 속성이 모두 필요합니다. – AaronLS