0

モデル コレクションを ViewBag var に渡してからビュー バッグでフィルター処理しようとしていますが、エラーが発生します。

「最初にデリゲートまたは式ツリー型にキャストせずに、ラムダ式を動的にディスパッチされた操作の引数として使用することはできません」

コントローラーには次のコードがあります

List<PersonalModel> Personal = new List<PersonalModel>();
Personal = db.Personal.ToList();
ViewBag.Personal = Personal;

そして、私の見解では、私はこのようなことをしたいです

@{
        var personal = ViewBag.Personal;
        personal=personal.Where(s => s.ID == @Html.DisplayFor(modelItem => item.ID) ).FirstOrDefault();
        @personal.FullName
}

ビューのモデルにロードした ID を使用して、モデルに FullName だけを表示したいのですが、機能していません。何か提案はありますか?、ありがとう。

4

2 に答える 2

1

Just confirmed, cast the dynamic when you grab it on the view side and you should be able to work with it as expected:

List<someObject> someSet = new List<someObject>();
dynamic dynamicSet = someSet;

// this will error because you cant perform lambda expressions on a dynamic
dynamicSet.Select(a => a.se == false);

// this will work because it is now casted into the structure you want and can work with
var newSet = (List<string>)dynamicSet;
newSet.Select(a => a.se == false);
于 2013-09-23T23:49:09.300 に答える