C# 无法在当前范围或上下文中解析

C# 无法在当前范围或上下文中解析,c#,jqgrid,asp.net-mvc-4,C#,Jqgrid,Asp.net Mvc 4,无法在当前范围或上下文中解析“fieldName”。制作 确保所有引用的变量都在范围内,这需要架构 已加载,并且名称空间被正确引用 当我在控制器中声明_数据时,会显示该消息: string orderBy = sidx + " " + sord; IQueryable<Table> _data; _data = entities.Table.OrderBy(orderBy).Skip(skip).Take(take); 有什么帮助吗?最可能的原因是您生成的orderBy表达式引用了

无法在当前范围或上下文中解析“fieldName”。制作 确保所有引用的变量都在范围内,这需要架构 已加载,并且名称空间被正确引用

当我在控制器中声明_数据时,会显示该消息:

string orderBy = sidx + " " + sord;
IQueryable<Table> _data;
_data = entities.Table.OrderBy(orderBy).Skip(skip).Take(take);

有什么帮助吗?

最可能的原因是您生成的orderBy表达式引用了表中不可用的字段-只需在此行中设置断点并检查其值


这里一件重要的事情是,在jqGrid的情况下,您已经用jqGrid标记了您的问题,在作为sidx发送的内容中存在一些不一致之处。大多数情况下,它是colModel中的索引,但有时,例如,当启用分组时,它可以是name。

最可能的原因是您生成的orderBy表达式引用了表中不可用的字段-只需在此行中设置断点并检查其值


这里一件重要的事情是,在jqGrid的情况下,您已经用jqGrid标记了您的问题,在作为sidx发送的内容中存在一些不一致之处。大多数情况下,它是colModel中的索引,但有时,例如,当启用分组时,它可以是名称。

感谢您的回答,现在我意识到了这一点。。。问题是因为我从标头jqgrid中的fieldName获得的sidx参数无法识别表名。然后我试着这样做,现在它解决了:

添加它。要订购变量,请执行以下操作:

string orderBy = "it."+ sidx + " " + sord; IQueryable<Table> _data;
_data = entities.Table.OrderBy(orderBy).Skip(skip).Take(take);

谢谢你的回答,现在我意识到了。。。问题是因为我从标头jqgrid中的fieldName获得的sidx参数无法识别表名。然后我试着这样做,现在它解决了:

添加它。要订购变量,请执行以下操作:

string orderBy = "it."+ sidx + " " + sord; IQueryable<Table> _data;
_data = entities.Table.OrderBy(orderBy).Skip(skip).Take(take);

您已经标记了MVC4。。此代码是在视图中还是在控制器中?或哪里而且您正在尝试按字符串排序。。你需要让它成为一种表达。事实上,所有LINQ表达式似乎都是变量。。它们是表达式吗?在MVC2中,我尝试了这种方式,并且它的工作。这是我的coltroller。你已经标记了MVC4。。此代码是在视图中还是在控制器中?或哪里而且您正在尝试按字符串排序。。你需要让它成为一种表达。事实上,所有LINQ表达式似乎都是变量。。它们是表达式吗?在MVC2中,我尝试了这种方式,并且它的工作。这是在我的coltroller中。我在那里设置了断点,并且已经检查过了。sidx的值与我的表中的fieldName相同。我标记jqgrid,因为sidx是我在短接标题jqgrid时从jqgrid获得的参数。@SilverCrow错误消息显然来自Linq表达式,因此那里一定发生了一些事情。是的,出现此消息是因为:.OrderByorderby-->.OrderByFieldName asc如果我使用像这样的普通大小写:.OrderByx=>x.Field它的工作。为什么?@SilverCrow有这么一点数据很难说清楚。我至少需要知道您正在使用哪种ORM,以及您在基于字符串的OrderBy Dynamic LINQ或其他方面使用了什么。了解有关您的模型和导致问题的属性的详细信息也很好,可能我们这里有嵌套属性问题或类似的问题。没有更多的细节,我只能猜测。我在那个里设置了断点,并且已经检查过了。sidx的值与我的表中的fieldName相同。我标记jqgrid,因为sidx是我在短接标题jqgrid时从jqgrid获得的参数。@SilverCrow错误消息显然来自Linq表达式,因此那里一定发生了一些事情。是的,出现此消息是因为:.OrderByorderby-->.OrderByFieldName asc如果我使用像这样的普通大小写:.OrderByx=>x.Field它的工作。为什么?@SilverCrow有这么一点数据很难说清楚。我至少需要知道您正在使用哪种ORM,以及您在基于字符串的OrderBy Dynamic LINQ或其他方面使用了什么。了解有关您的模型和导致问题的属性的详细信息也很好,可能我们这里有嵌套属性问题或类似的问题。没有更多的细节,我只能猜测。是的,大多数情况下你都忘记了它。前缀。是的,最常见的情况是你忘记了它。前缀