我在asp.net MVC 5的Razor视图中具有以下Web网格,并且正在使用Entity Framework 6.0:-
现在,网络网格在除一次分页之外的所有分页上都运行良好,当我对其进行检查时,我发现WebGrid
将返回此错误:-
“ SDUser.Department.Definition.DEPTNAME”列不存在。
因此,该页面内的某些项目似乎没有这些导航属性SDUser.Department.Definition.DEPTNAME
,所以我该如何克服这个问题?
编辑:-这是我的更新代码,在其中添加了If / Else,但仍然收到相同的错误:-
答案 0 :(得分:1)
在网格列中添加新的WebGridColumn之前,请检查DEPTNAME属性是否存在。
@if(@Model.Content.FirstOrDefault().SDUser.Department.Definition.HasProperty("DEPTNAME"))
{
gridcolumns.Add(new WebGridColumn()
{
ColumnName = "SDUser.Department.Definition.DEPTNAME",
Header = Html.DisplayNameFor(model => model.Content.FirstOrDefault().SDUser.Department.Definition.DEPTNAME).ToString(),
CanSort = true
});
}
另外,如果您要检查其值是否存在或为空,请使用此
@if(@Model.Content.FirstOrDefault().SDUser.Department.Definition.HasProperty("DEPTNAME") && @Model.Content.FirstOrDefault().SDUser.Department.Definition.GetProperty("productSalePrice").Value != String.Empty)
{
//your code
}
注意:我实际上并不知道您的模型层次结构,我认为特定页面没有DEPTNAME属性。 (您可以根据自己的要求进行修改)