我有三张表,比如
分类----> Id,名称
CategoryCertifications ---> CategoryId,CertificationId
认证-----> Id,名称,摘要
我想在视图页面中显示certificationName和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();
在ViewPage中,我提到了Like Below
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]'
感谢您提前..
答案 0 :(得分:0)
你能发送变量的数据类型吗?
建议:尝试在所需类型的models文件夹中创建自定义模型,并创建它的实例。然后将数据附加到模型并简单地将自定义对象传递给视图...
答案 1 :(得分: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
希望这会有所帮助。
答案 2 :(得分: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();
在这种情况下,认证列表将传递给视图。