未捕获的TypeError:无法调用未定义的方法'Where'

时间:2013-10-07 05:52:06

标签: c# javascript jquery linq

我不确定这个错误的原因是什么,但我试图使用linq查询返回结果语句循环遍历位置列表,然后另一个循环来获取每个位置的所有用户。

linq是可枚举的

var getList = function () {
        Ajax.Get({
            Url: ...,
            DataToSubmit: {id: properties.Id },
            DataType: "json",
            OnSuccess: function (roleData, status, jqXHR) {
                // bind role types
                bindModel(roleData);
                console.log("roles:", roleData.length);

                Ajax.Get({
                    Url: ....,
                    DataToSubmit: { pageNumber: 1, id: properties.Id },
                    DataType: "json",
                    OnSuccess: function (userData, status, jqXHR) {
                        console.log("users", userData.length);
                        var results = linq.From(roleData.RoleTypes)
                            .ForEach(userData.Users)
                            .Where('x => x.ContentRole == "' + roleData.ContentRole + '"').Any();
                        console.log(results);
})
})

错误:

var results = linq.From(roleData.RoleTypes)
                                .ForEach(userData.Users)
                                .Where('x => x.ContentRole == "' + roleData.ContentRole + '"').Any();

错误讯息: 未捕获的异常(js):未捕获的TypeError:无法调用方法'where'of undefined

1 个答案:

答案 0 :(得分:1)

。必须得到一个bool谓词,但是你要传递一个字符串。尝试将其更改为

 .Where(x => x.ContentRole == roleData.ContentRole);