2012-04-29 39 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);  
}); 

工作樣本http://jsfiddle.net/CFdeW/14/

決不用於將元素添加到一個下拉做在循環中的append方法。它總是存儲到一個變量,並調用了HTML方法只有一次

+0

哪裏jsonData在$。每個從何而來?感謝您的回覆:) – TMan

+0

@TMan:結果相同。我在例子中使用了JsonData。現在更新我的示例。 – Shyju

+0

哦,我很煩,很酷的thx – TMan

2

要返回元組ID和名稱,你可以這樣做:

var userstorynames = userstorylist.Select(x => new { id = x.Id, name = x.Name }).ToList(); 
相關問題