首页 > 解决方案 > 如何使用实体框架打印存储在 ASP.NET MVC 中的 Viewbag 中的连接查询数据?

问题描述

我想显示存储在ViewBag视图端的 2 个不同表中的数据,但我无法打印数据,出现错误

“对象”不包含“名称”的定义

控制器端的代码

public ActionResult Packages()
{
    int Prov_id = 1;

    using (var db = new DataContex())
    {
        ViewBag.pack = db.Packages.Where(x => x.ProviderId == Prov_id).ToList();

        ViewBag.service = db.GroupServices.Join(db.PackageServices,
                gs => gs.ServiceId,
                ps => ps.ServiceId,
                (gs, ps) => new
                {
                    name = gs.ServiceName
                })
                .ToList();

    return View();
}

查看标记:

@foreach (var item in ViewBag.pack)
{
    <div class="col-md-6 bg-white mt-3">
        <div class="card border package-grid p-3">
            <div class="row">
                <div class="col-md-8">
                    <input type="hidden" />
                    <h4 class="font-weight-bold py-2">@item.PackageName</h4>
                    @foreach (var item1 in ViewBag.service)
                    {
                        <h6 class="py-1">@item1.Name</h6>
                    }
                    <p class="py-3">@item.PackageDescription</p>
                </div>
            </div>
            <div class="row">
                <div class="col-md-12 mt-3 d-flex justify-content-between flex-wrap">
                    <p><strike> Rs. @item.PackagePrice</strike> <span>Rs. @item.PackageOfferPrice</span> </p>
                    <span><a href="#" class="btn btn-sm btn-outline-danger">Remove</a></span>
                </div>
            </div>
        </div>
    </div>
}

标签: asp.net-mvcentity-framework

解决方案


那是因为当您创建时,ViewBag.service您已经创建了带有as和as的anonymous对象,并且您正在尝试使用as as 。propertynamenLowerCaseview@item.NameNUpperCase

更正属性名称,它将起作用。


推荐阅读