1

我正在尝试将现有的 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 命名空间的引用,但无济于事。

任何帮助深表感谢,

J.P

4

3 回答 3

3

感谢大家的回答。原来这是一个 ID 10 T....

本质上,我忽略了强烈输入我的观点。我正在使用

@inherits System.Web.Mvc.WebViewPage<dynamic>

而不是使用

@inherits System.Web.Mvc.WebViewPage<MyViewModel>

使用正确的类型解决了这个问题。再次感谢,JP

于 2010-07-31T18:48:25.053 回答
0

你也可以这样做:

@if (Model.ObjectList.Count == 0)
 {
 <tr>
   <td>No data found</td>
 </tr>
 }
于 2012-11-21T12:26:29.620 回答
0

您需要导入正确的命名空间:

using System.Linq;
于 2010-07-31T09:04:19.920 回答