我正在尝试将现有的ASPX页面转换为cshtml格式。
原始ASPX看起来像这样:
<%
if (!Model.ObjectList.Any())
{
%>
<tr>
<td>No data found</td>
</tr>
<%
}
等效的Razor版本如下所示:
@if (!Model.ObjectList.Any())
{
<tr>
<td>No data found</td>
</tr>
}
虽然原始语法工作得很好,但等效操作失败并显示以下消息
'System.Collections.Generic.List' 不包含的定义 '任意'
我在想 a)为什么会发生这种情况 b)如何解决此问题。我在CSHTML文件中添加了对System.LINQ命名空间的引用,但无济于事。
非常感谢任何帮助,
JP
答案 0 :(得分:3)
感谢大家的回答。结果证明这是一个ID 10 T ....
基本上我忽略了强烈输入我的观点。我正在使用
@inherits System.Web.Mvc.WebViewPage<dynamic>
而不是使用
@inherits System.Web.Mvc.WebViewPage<MyViewModel>
使用正确的类型修复了问题。 再次感谢, JP
答案 1 :(得分:0)
您需要导入正确的命名空间:
using System.Linq;
答案 2 :(得分:0)
您也可以这样做:
@if (Model.ObjectList.Count == 0)
{
<tr>
<td>No data found</td>
</tr>
}