0

json オブジェクトのリストをビューに返そうとしていますが、オブジェクトが好きではありません。文字列または文字列のリストを返すと機能します。しかし、実際にはビュー内のオブジェクト全体は必要ありません。本当に必要なのは名前と ID だけです。これを変更して、名前と一致する ID のリストをビューに返し、すべての名前をリストボックスに挿入/更新するにはどうすればよいですか? どんな助けでも大歓迎です。:)

     [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>"));
            }
        });
4

2 に答える 2

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 メソッドを1 回だけ呼び出します。

于 2012-04-29T15:55:17.687 に答える
2

IDと名前のタプルを返すには、次のようにします。

var userstorynames = userstorylist.Select(x => new { id = x.Id, name = x.Name }).ToList();
于 2012-04-29T16:15:47.140 に答える