我尝试通过foreach进行循环,但没有用

时间:2019-06-05 13:26:53

标签: c# asp.net-core .net-core entity-framework-core

我尝试展示具有GroupIdSubGroupId的产品。我使用foreach来显示每个具有subGroup的{​​{1}}。

到目前为止,它可以正常工作,当我想在foreach中显示将GroupId = ParentId作为subGroupId的产品时,它不起作用。

这是我的代码:

组模型类:

SubgroupId

产品型号类别:

    [Key]
    public int CompanyProductGroupId { get; set; }

    [Display(Name = "عنوان گروه")]
    [Required(ErrorMessage = "لطفا {0} را وارد کنید")]
    [MaxLength(200, ErrorMessage = "{0} نمی تواند بیشتر از {1} کاراکتر باشد .")]
    public string CompanyProductGroupTitle { get; set; }

    [Display(Name = "توضیح مختصر")]
    [Required(ErrorMessage = "لطفا {0} را وارد کنید")]
    [MaxLength(200, ErrorMessage = "{0} نمی تواند بیشتر از {1} کاراکتر باشد .")]
    public string CompanyProductGroupDes { get; set; }

    [Display(Name = "حذف شده ؟")]
    public bool IsDelete { get; set; }

    [Display(Name = "تصویر")]
    public string CompanyProductGroupPic { get; set; }

    [Display(Name = "گروه اصلی")]
    public int? ParentId { get; set; }

    [ForeignKey("ParentId")]
    public List<CompanyProductGroup> CourseGroups { get; set; }

    [InverseProperty("CompanyProductGroup")]
    public List<CompanyProduct> CompanyProduct { get; set; }

    [InverseProperty("Group")]
    public List<CompanyProduct> SubGroup { get; set; }

服务:

    [Key]
    public int CompanyProductId { get; set; }

    [Display(Name = "گروه اصلی محصول")]
    [Required(ErrorMessage = "لطفا {0} را وارد کنید")]
    public int CompanyProductGroupId { get; set; }

    [Display(Name = "گروه فرعی محصول")]
    public int? SubGroupId { get; set; }

    [Display(Name = "عنوان محصول")]
    [MaxLength(200, ErrorMessage = "{0} نمی تواند بیشتر از {1} کاراکتر باشد .")]
    [Required(ErrorMessage = "لطفا {0} را وارد کنید")]
    public string CompanyProductTitle { get; set; }

    [Display(Name = "تصویر محصول")]
    [MaxLength(200, ErrorMessage = "{0} نمی تواند بیشتر از {1} کاراکتر باشد .")]
    [Required(ErrorMessage = "لطفا {0} را وارد کنید")]
    public string CompanyProductPic { get; set; }

    [Display(Name = "تصویر پس زمینه محصول")]
    [MaxLength(200, ErrorMessage = "{0} نمی تواند بیشتر از {1} کاراکتر باشد .")]
    [Required(ErrorMessage = "لطفا {0} را وارد کنید")]
    public string CompanyProductBackPic { get; set; }

    [Display(Name = "تصویر صفحه گروه محصول")]
    [MaxLength(200, ErrorMessage = "{0} نمی تواند بیشتر از {1} کاراکتر باشد .")]
    [Required(ErrorMessage = "لطفا {0} را وارد کنید")]
    public string CompanyProducGtPic { get; set; }

    [Display(Name = "متن آدرس محصول")]
    [MaxLength(60, ErrorMessage = "{0} نمی تواند بیشتر از {1} کاراکتر باشد .")]
    [Required(ErrorMessage = "لطفا {0} را وارد کنید")]
    public string ProductGroupUrl { get; set; }

    [Display(Name = "توضیحات محصول")]
    [Required(ErrorMessage = "لطفا {0} را وارد کنید")]
    public string CompanyProductText { get; set; }

    [Display(Name = "تاریخ ارسال محصول")]
    [MaxLength(200, ErrorMessage = "{0} نمی تواند بیشتر از {1} کاراکتر باشد .")]
    public string CompanyProductSendDate { get; set; }

    [Display(Name = "تاریخ بروزرسانی محصول")]
    [MaxLength(200, ErrorMessage = "{0} نمی تواند بیشتر از {1} کاراکتر باشد .")]
    public string CompanyProductModifiedDate { get; set; }

    [Display(Name = "صاحب محصول")]
    [MaxLength(200, ErrorMessage = "{0} نمی تواند بیشتر از {1} کاراکتر باشد .")]
    public string CompanyProductOwner { get; set; }

    [Display(Name = "نویسنده")]
    [MaxLength(200, ErrorMessage = "{0} نمی تواند بیشتر از {1} کاراکتر باشد .")]
    [Required(ErrorMessage = "لطفا {0} را وارد کنید")]
    public string CompanyProductWriter { get; set; }

    [Display(Name = "عنوان گوگل")]
    [MaxLength(200, ErrorMessage = "{0} نمی تواند بیشتر از {1} کاراکتر باشد .")]
    [Required(ErrorMessage = "لطفا {0} را وارد کنید")]
    public string CompanyProductgoogleTitle { get; set; }

    [Display(Name = "توضیحات گوگل")]
    [MaxLength(200, ErrorMessage = "{0} نمی تواند بیشتر از {1} کاراکتر باشد .")]
    public string CompanyProductMetaGoogle { get; set; }

    [Display(Name = "کلمات کلیدی")]
    [MaxLength(200, ErrorMessage = "{0} نمی تواند بیشتر از {1} کاراکتر باشد .")]
    public string CompanyProductKeywords { get; set; }

    [Display(Name = "توضیح مختر(200 کاراکتر)")]
    [MaxLength(200, ErrorMessage = "{0} نمی تواند بیشتر از {1} کاراکتر باشد .")]
    [Required(ErrorMessage = "لطفا {0} را وارد کنید")]
    public string CompanyProductShortDesc { get; set; }

    [Display(Name = "تعداد بازدید")]
    public int CompanyProductViewCount { get; set; }

    #region Relations

    [ForeignKey("CompanyProductGroupId")]
    public CompanyProductGroup CompanyProductGroup { get; set; }

    [ForeignKey("SubGroupId")]
    public CompanyProductGroup Group { get; set; }

    #endregion

控制器:

  public List<CompanyProductGroup> GetPorductGroupById(int id)
    {

        return _context.CompanyProductGroups.Include(d => d.CompanyProduct)
             .Where(c => c.CompanyProductGroupId == id && c.IsDelete == false || c.ParentId == id).ToList();
    }

有问题的视图:

    [Route("group/{title}/{id}")]
    public IActionResult Group(string title, int id)
    {
        ViewBag.PageId = id;
        return View(_companyService.GetPorductGroupById(id));
    }

要点是没有错误:(

当我将foreach与主组ID结合使用时,它的代码如下:

@foreach (var head in Model.Where(c => c.CompanyProductGroupId == ViewBag.PageId && c.ParentId == null))
{
    <div class="section-title2">
        <h2>@head.CompanyProductGroupTitle</h2>
        <br />
        <p>@head.CompanyProductGroupDes </p>

    </div>
    @foreach (var gr in head.CompanyProduct.Where(d => d.CompanyProductGroupId == head.CompanyProductGroupId)){<div class="wid-50">
            <img src="~/companyproduct/image/gr.CompanyProducGtPic" />
            <div class="wid-50-content">
                <h2>gr.CompanyProductTitle</h2>
                <p>
                    gr.CompanyProductShortDesc
                </p>
                <a href="#">بیشتر</a>
            </div>
        </div>
    }
}

0 个答案:

没有答案