Foreach Sử dụng List khi ViewBag trong MVC bị lỗi FirstOrDefault() First()

Thảo luận trong 'Lập Trình Website MVC5 & MVC6' bắt đầu bởi seolagi, 5/8/18.

  1. seolagi

    seolagi

    Vip Member

    Tham gia ngày:
    16/4/14
    Bài viết:
    557
    Đã được thích:
    38
    Điểm thành tích:
    28
    Khi mình gọi ViewBag.VBProduct trong hàm foreach của web MVC, sau đó mình select dữ liệu dạng FirstOrDefault() hoặc First() lấy vào các bảng phía trong thì bị báo lỗi. Giờ làm sao để chuyển ViewBag.VBProduct sang dạng list của Bảng dữ liệu tương ứng của ViewBag.VBProduct.
    Ví dụ: @foreach (var p in ViewBag.VBProduct as Product) //Báo lỗi.
    Lỗi:
    • 'System.Collections.Generic.HashSet<EShopV20.Models.SupDetail>' does not contain a definition for 'FirstOrDefault'
    • Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
    • Exception Details: Microsoft.CSharp.RuntimeBinder.RuntimeBinderException: 'System.Collections.Generic.HashSet<EShopV20.Models.SupDetail>' does not contain a definition for 'First'
    Code của mình khi view:
    Mã:
    @foreach (var p in ViewBag.VBProduct)
    {
        <div class="cs-row10 cs-rowCl">
            <img class="col-lg-4 col-md-4 col-sm-4 col-xs-4" alt="" src="~/images/suppliers/@p.Category.SupDetails.FirstOrDefault().Logo" />
            <div class="col-lg-8 col-md-8 col-sm-8 col-xs-8">
                <a href="/Product/Detail/@p.Id"><h3>@p.Category.SupDetails.FirstOrDefault().Name</h3></a>
            </div>
        </div>
    }
    Giúp mình với, cảm ơn
     
    Cảm ơn đã xem bài:

    Foreach Sử dụng List khi ViewBag trong MVC bị lỗi FirstOrDefault() First()

    danh sách diễn đàn rao vặt gov chất lượng
  2. admin

    admin Phạm Công Sơn Thành viên BQT

    Tham gia ngày:
    22/5/13
    Bài viết:
    4,360
    Đã được thích:
    999
    Điểm thành tích:
    113
    Giới tính:
    Nam
    Hi bạn, bạn muốn sử dụng ViewBag.Model (VBProduct) trong hàm foreach để truy cập dữ liệu ở các dữ liệu khóa ngoại bảng khác thì bạn phải chuyển nó sang dạng list ICollection thì mới truy xuất được nhé.
    Bạn chỉ cần đổi cái foreach lại như sau:
    Mã:
    @foreach (var p in ViewBag.modelrelated as ICollection<Product>)
    {
        <div class="cs-row10 cs-rowCl">
            <img class="col-lg-4 col-md-4 col-sm-4 col-xs-4" alt="" src="~/images/suppliers/@p.Category.SupDetails.FirstOrDefault().Logo" />
            <div class="col-lg-8 col-md-8 col-sm-8 col-xs-8">
                <a href="/Product/Detail/@p.Id"><h3>@p.Category.SupDetails.FirstOrDefault().Name</h3></a>
            </div>
        </div>
    
    }
    
     


Chủ để tương tự : Foreach Sử
Diễn đàn Tiêu đề Date
Lập Trình Website MVC5 & MVC6 Get Action, Controller, Area Name in MVC ASP.NET C# 100% successful 24/9/18
Lập Trình Website MVC5 & MVC6 Lỗi: You are debugging a release build of mysolution.dll Visual Studio 2015 17/9/18
Lập Trình Website MVC5 & MVC6 Add Class CSS to validationsummary trong mvc Asp.net (C#) như thế nào 24/8/18
Lập Trình Website MVC5 & MVC6 Hiển thị mã HTML trong View sử dụng ViewBag ASP.NET MVC C# 6/8/18
Lập Trình Website MVC5 & MVC6 Redirect http sang https sử dụng mô hình MVC trong IIS Asp.net 27/7/18

Like và Share ủng hộ ITSEOVN