0

このリストで同じ SelectListItems を取得することは可能ですか:

    public static List<SelectListItem> GetAreaApprovingAuthorities(int id)
    {
        List<Employee> approvingAuthorities = new List<Employee>();
        using (var db = new TLMS_DBContext())
        {
            approvingAuthorities = db.Employees.Where(e => e.UserRoleID > 1 && e.PersonnelAreaID == id).ToList();
        }
        List<SelectListItem> returned = new List<SelectListItem>();
        foreach (Employee emp in approvingAuthorities)
        {
            returned.Add(new SelectListItem { Text = string.Format("{0} {1}", emp.FirstName, emp.LastName), Value = emp.ID.ToString() });
        }
        return returned;
    }

Jsonを使用してそれらを選択リストに渡しますか? リストが取得されるコントローラ アクションは次のとおりです。

    public JsonResult GetApprovingAuthorities(int id)
    {
        return Json(TLMS_DropDownLists.GetAreaApprovingAuthorities(id),JsonRequestBehavior.AllowGet);
    }

ここでは、json オブジェクトが繰り返され、選択リストに渡されます (これは、別の選択リストの値が変更されたときにトリガーされます)。

            $.ajax({
            type: 'GET',
            data: { id: selectedValue },
            url: '@Url.Action("GetApprovingAuthorities")',
            contentType: "application/json; charset=utf-8",
            global: false,
            async: false,
            dataType: "json",
            success: function (jsonObj) {
                                $('#aa').empty();
                                $.each(jsonObj, function (key, value) {
                                    $('#aa').append($("<option/>", {
                                        value: key.Text,
                                        text: value.Text
                                    }));
                                });
                            }
        });

これは、「aa」選択リストを設定するために機能しており、コントローラー アクションの FormCollection を介して選択リストの選択されたアイテムを受け取っていますが、「GetAreaApprovingAuthorities」SelectListItem の値から元の ID を取得できません。これを実現する方法はありますか?

4

1 に答える 1

1

jsonObj を反復処理しているときは、次のようになります。

//the first parameter is just the index of the iteration
//and the second one is the json object (SelectListItem)
$.each(jsonObj, function (index, obj) { 
    $('#aa').append($("<option/>", 
    {
          value: obj.Value,
          text: obj.Text
    }));
});
于 2013-09-06T14:32:05.013 に答える