0

次のような3つのテーブルがあります

カテゴリ ---->ID,名前

CategoryCertifications --->CategoryId,CertificationId

認定 ----->ID、名前、概要

ビューページに認証名と概要の一覧を表示したい。

私はこのように試しました

ViewBag.CategoryCertifications=from pd in db.categories join od in db.categorycertifications on pd.id equals od.CategoryId join ct in db.certifications on od.certificationId equals ct.id select new { ct.Name,ct.Summary }).ToList();

ViewPage で、以下のように言及しました

var categories=(List<Certification>ViewBag.CategoryCertifications ?? new List<Certification>();

ビューページで次のエラーが発生しました

unable to cast object of type'system.collection.generic.list''[<>f_Anonymous type 2f'2[system.string,system.string]]' to type 'system.collection.generic.list' '[cn.models.Certification]'

前もってありがとう..

4

3 に答える 3

0

あなたのクラス認定資格には次のものが含まれているため、Id ,Name, Summary

次のクエリは、次を含む型を返しますname and summary

 ViewBag.CategoryCertifications=from pd in db.categories join od in db.categorycertifications on pd.id equals od.CategoryId join ct in db.certifications on od.certificationId equals ct.id select new { ct.Name,ct.Summary }).ToList();

どちらも互換性がないため、ここではキャストできません。代わりに、

キャストする代わりに、つまりこの行

var categories=(List<Certification>ViewBag.CategoryCertifications ?? new List<Certification>();

ビューで直接使用して書くだけViewBag.CategoryCertificationsです。そのため、実行時にプロパティがバインドされます。ビューで使用するプロパティ名を確認してください。ct.Name,ct.Summary彼らはこれが役立つことを願っているはずです.

于 2013-10-01T12:44:35.377 に答える
0
ViewBag.CategoryCertifications=from pd in db.categories join od in
db.categorycertifications on pd.id equals od.CategoryId join ct in db.certifications on
od.certificationId equals ct.id select new 
{
ct.Name,ct.Summary
}).ToList();

上記のコードでは、匿名リストをビューに返し、それを証明書のリストにキャストしようとしているため、エラーが発生します。

これを試して:

ViewBag.CategoryCertifications=from pd in db.categories join od in
db.categorycertifications on pd.id equals od.CategoryId join ct in db.certifications on
od.certificationId equals ct.id select new Certification
{
Name=ct.Name,Summary=ct.Summary
}).ToList();

この場合、証明書のリストがビューに渡されます。

于 2014-07-04T05:51:53.667 に答える
0

変数のデータ型を送ってもらえますか?

提案: 必要なタイプのモデル フォルダーにカスタム モデルを作成し、そのインスタンスを作成してみてください。次に、データをモデルに追加し、カスタム オブジェクトをビューに渡すだけです ...

于 2013-10-01T12:30:27.053 に答える