ビュー内には、エディター テンプレートをレンダリングするコード行があります。
ただし、次のエラーが返されます。
テンプレートは、フィールド アクセス、プロパティ アクセス、単一次元の配列インデックス、または単一パラメーターのカスタム インデクサー式でのみ使用できます。
これは、私が望むものを達成するための最もエレガントな方法のように思えますが、ビューのラムダ式がエディター テンプレートには複雑すぎることに気付きました。
誰かがこれを機能させる方法を提案したり、より良い方法を教えてくれますか?
意見
@Html.EditorFor(model => model.Approvers.Where(a => a.ApprovalCount > 0))
エディタ テンプレート
@model Project.ViewModels.AssignedApproverData
<div class="span3">
<label class="checkbox inline">
@Html.HiddenFor(model => model.EmployeeID)
@Html.CheckBoxFor(model => model.Assigned)
@Html.DisplayFor(model => model.FullName)
</label>
</div>
エディタ テンプレート ViewModel
using System;
using System.Collections.Generic;
using Project.Models;
namespace Project.ViewModels
{
public class AssignedApproverData
{
public string EmployeeID { get; set; }
public string FullName { get; set; }
public bool Assigned { get; set; }
public int ApprovalCount { get; set; }
}
}
ビューモデル
namespace Project.ViewModels
{
public class ChangeRequestViewModel
{
public virtual ICollection<AssignedApproverData> Approvers { get; set; }
}
}