リスト アイテムを保持するビュー モデルを作成したいのですが、各アイテムは編集と削除のアクション URL を保持するため、次のコードを作成します。
public ActionResult Index()
{
AdministrationViewModel model = new AdministrationViewModel();
using (var _context = new CamelotFaultManagementEntities())
{
model.FaultTypes = new ListViewModel()
{
ListTitle = AdministrationStrings.FaultTypesAdministrationTab,
AddNewItemURL = "#",
AddNewItemButtonTitle = SharedStrings.Add + " " + SharedStrings.FaultType,
ListItems = _context.FaultTypes.Select(type => new ListItemViewModel() {
ListItemID = type.FaultTypeID,
ListItemName = type.FaultTypeName,
ListItemDescription = type.FaultTypeDescription,
DeleteActionURL = @Url.Action("DeleteFaultType","Administration", new {FaultTypeID = type.FaultTypeID}),
EditActionURL = @Url.Action("EditFaultType", "Administration", new { FaultTypeID = type.FaultTypeID }),
}).ToList()
};
}
return View("Administration",model);
}
問題は、実行時にエラーが発生することです
LINQ to Entities はメソッド 'System.String Action(System.String, System.String, System.Object)' メソッドを認識せず、このメソッドをストア式に変換できません。
これを克服する方法はありますか... 自分でこれらの URL の作成を開始したくありません。