私はLinks DBにDateTime変数を持っています。そして、DateTime変数の月が現在の月であるクライアントIDを共有するリンクの数をカウントしたいと思います。HTMLヘルパーの条件MVC5
CS1061: 'ICollection' does not contain a definition for 'BuildDate' and no extension method 'BuildDate' accepting a first argument of type 'ICollection' could be found (are you missing a using directive or an assembly reference?)
ビューはEF6によって構築されています。
は、しかし、私はこのエラーを取得します。クライアントビューで
ループ:
@foreach (var item in Model) {
<tr>
<td>
@Html.DisplayFor(modelItem => item.client)
</td>
<td>
@Html.DisplayFor(modelItem => item.monthlyQuota)
</td>
<td>
@Html.DisplayFor(modelItem => item.Links.Count)
</td>
<td>
@Html.DisplayFor(modelItem => item.Links.Where(item.Links.BuildDate.Month == Datetime.Month).Count)
</td>
<td>
@Html.DisplayFor(modelItem => item.TopicTF)
</td>
<td>
@Html.ActionLink("Edit", "Edit", new { id=item.ID }) |
@Html.ActionLink("Details", "Details", new { id=item.ID }) |
@Html.ActionLink("Delete", "Delete", new { id=item.ID })
</td>
</tr>
}
リンクモデル
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace LinksDB.Models
{
public class Link
{
public int LinkID { get; set; }
public int IdentifierID { get; set; }
public string Obdomain { get; set; }
public string Obpage { get; set; }
public int ClientID { get; set; }
public string Anchor { get; set; }
[Required]
public DateTime BuildDate { get; set; }
public virtual Identifier Identifier { get; set; }
public virtual Client Client { get; set; }
}
}
「DateTime」である必要があります。 udpated答えを参照してください。データをフィルタリングする述語を持つlinq式で 'DisplayFor'を使うことはできません。 – Shyju
あなたの編集した答えは完璧に動作します:)あなたの助けに感謝! – liamcook
これは、C#式 '@(10-item.Links.Count(a => a.BuildDate.Month == DateTime.Now.Month))' – Shyju