显示视图时出错

本文关键字:出错 视图 显示 | 更新日期: 2023-09-27 17:55:41

当我编译我的程序时,我遇到了这个错误:

"System.Collections.Generic.ICollection"不会 包含"WIE_Ilosc"的定义,没有扩展方法 "WIE_Ilosc"接受类型的第一个参数 "System.Collections.Generic.ICollection"可以是 找到(是否缺少 using 指令或程序集引用?

我必须在代码中更改哪些内容才能使其正常工作?

我的观点:

@model List<Webb.Models.Faktury>
@{
    Layout = null;
}
<!DOCTYPE html>
<html>
<head>
</head>
<body>
    <h2>Faktura VAT</h2>
    <p>
        Oryginal</p>
    <table width="100%">
        <tr>
            <td>ID</td>
            <td>Data S.</td>
            <td>Numer</td>
        </tr>
        @foreach (var item in Model)
        {
            <tr>
                <td>@item.FAK_Id</td>
                <td>@item.FAK_DataS</td>
                <td>@item.Firma.FIR_Rachunek</td>
                <td>@item.Wierszes.WIE_Ilosc</td>
            </tr>
        }
    </table>
</body>
</html>

我的控制器:

public ActionResult Reports(int? id)
        {
            // Setup sample model
            var pro = (from a in db.Fakturies
                       join b in db.Wierszes on a.FAK_Id equals b.WIE_Fkid
                       join c in db.Produkties on b.WIE_Pid equals c.PRO_Id
                       select a);
            pro = pro.Where(a => a.FAK_Id == id);
            if (Request.QueryString["format"] == "pdf")
                return new PdfResult(pro.ToList(), "Reports");
            return View(pro);
        }

部分型号:

public Faktury()
        {
            this.Wierszes = new HashSet<Wiersze>();
        }
     .
     .
     .
     .
        public virtual ICollection<Wiersze> Wierszes { get; set; }
        public virtual Firma Firma { get; set; }
        public virtual Klienci Klienci { get; set; }
        public virtual Statusy Statusy { get; set; }
    }

显示视图时出错

查看剃须刀代码中的这一行。

<td>@item.Wierszes.WIE_Ilosc</td>

但根据您的类定义,FakturyWierszes属性是集合类型 ( ICollection<Wiersze> )。在您看来,您正在尝试访问集合上的WIE_Ilosc属性!

如果要显示所有 Wiersze,则应再次循环遍历它们并渲染它。

@foreach (var item in Model)
{
   <tr>
       <td>@item.FAK_Id</td>
       <td>@item.FAK_DataS</td>
       <td>
            @if(item.Wierszes!=null)
            {
               foreach(var v in item.Wierszes)
               {
                   <span>@v.WIE_Ilosc</span>
               }
            }
        </td>
    </tr>
}