2012-04-29 2 views
0

json 객체의 목록을 뷰에 반환하려고합니다. 그러나 객체가 마음에 들지 않으므로 문자열이나 문자열을 반환하면 작동합니다. 캐릭터 라인의리스트 그러나 실제로는보기에 전체 개체가 필요하지 않습니다. 실제로 이름과 ID가 필요합니다. 이름의 목록을 반환하고보기에 ID를 일치시킨 다음 모든 이름을 목록 상자에 삽입/업데이트하려면 어떻게해야합니까? 어떤 도움을 주셔서 감사합니다. :)Json 객체를 반환하면 문자열 만 반환됩니다.

 [AcceptVerbs(HttpVerbs.Get)] 
    public JsonResult GetUserStories(int id) 
    { 
     var userstorylist = userRepository.Select().Where(x => x.EpicId.Equals(id)).ToList(); 
     var userstorynames = userstorylist.Select(x => x.Name); 

     return Json(userstorynames, JsonRequestBehavior.AllowGet); 
    } 

보기 :

  $.getJSON("/Estimate/GetUserStories", $.param({ id: selectedid }, true), function (result) { 
      $(".UserStoryListBoxClass").html(""); 
      for (var item in result) { 
       $(".UserStoryListBoxClass").append($("<option>" + result[item] + "</option>")); 
      } 
     }); 

답변

3

당신의 json 결과는 아래의 코드가 작동이

[{"Id": "1","Name": "Skeet"},{"Id": "2","Name": "Darin"}] 

같은 경우,

$.getJSON("/Estimate/GetUserStories", $.param({ id: selectedid }, true), function (result) { 
    var items=""; 
    $.each(result, function(index) { 
     items+="<option value="+result[index].Id+">" + result[index].Name+ "</option>"; 
    }); 
    $(".UserStoryListBoxClass").html(items);  
}); 

샘플,613 작업

드롭 다운에 요소를 추가하는 루프에 append 메서드를 사용하지 마십시오. 항상 변수에 저장하고 html 메서드 을 한 번만 호출하십시오..

+0

어디 $에 jsonData에서 온 .each는 무엇입니까? 응답 주셔서 감사합니다 :) – TMan

+0

@ 남자 : 그 결과와 동일합니다. 예를 들어 JsonData를 사용했습니다. 지금 내 예제를 업데이트했습니다. – Shyju

+0

오, 멋지다. – TMan

2

당신이 할 수있는 ID와 이름으로 튜플을 반환하려면 다음

var userstorynames = userstorylist.Select(x => new { id = x.Id, name = x.Name }).ToList(); 
관련 문제