показать parentcategoryname в RazorPages asp.net ядро 2_1

#c# #jquery #sql-server #asp.net-core #razor-pages

#c# #jquery #sql-сервер #asp.net-ядро #razor-страницы

Вопрос:

это моя карта класса категории для моей базы данных

 
            public int CategoryID { get; set; }
        public string CategoryName { get; set; }

        [ForeignKey("category")]
        public int? ParentCategoryID { get; set; }

        public Category category { get; set; }

        public List<Category> Categories { get; set; }

  

и это мое представление razor

 
        <div class="row">
    <div class="col-md-12">
        <div class="card bg-dark">
            <div class="card-header bg-light">
                <h2>Categories List</h2>
                <a asp-page="./Create"><span class="text-primary ml-2">Create New</span><i class="fa fa-plus-circle text-primary"></i></a>
            </div>
            <div class="card-body bg-light">
                <form method="post">
                    <table class="table table-bordered table-striped">
                        <thead>
                            <tr>
                                <th>
                                    Category Name
                                </th>
                                <th class="text-center">
                                    Parent CategoryName
                                </th>
                                <th class="text-center">
                                    Operation
                                </th>
                            </tr>
                        </thead>
                        <tbody>
                            @foreach (var item in Model.Categories)
                            {
                                <tr>
                                    <td>
                                        @item.CategoryName
                                    </td>
                                    <td class="text-center">
                                        @if (item.ParentCategoryID != null)
                                        {
                                            <a asp-page="./SubCategories" asp-route-id="@item.CategoryID" class="btn btn-secondary">@father.FatherName(item.CategoryID)</a>
                                        }
                                        else
                                        {
                                            <span><i class="fa fa-check-square text-success"></i></span>
                                        }

                                    </td>
                                    <td class="text-center">
                                        <a asp-page="./Edit" asp-route-id="@item.CategoryID"><i class="fa fa-edit text-success"></i></a> |
                                        <button asp-page-handler="Delete" asp-route-id="@item.CategoryID"><i class="fa fa-trash text-danger"></i></button> |
                                        <a asp-page="./Details" asp-route-id="@item.CategoryID"><i class="fa fa-eye text-primary"></i></a>
                                    </td>
                                </tr>
                            }
                        </tbody>
                    </table>
                </form>
            </div>
        </div>
    </div>
</div>

  

я не знаю, как показать имя имени родительской категории. я могу сделать это в mvc, но я не мог этого сделать на страницах razor. даже запросы не работают.

некоторые из моих запросов :

         var faTher = (from c in _unitOfWork._Context.Categories
                          where (c.ParentCategoryID == id)
                          select new
                          {
                              Name = c.CategoryName
                          }).ToString();
  
         string faTher = _unitOfWork._Context.Categories.Where(c => c.ParentCategoryID == id).Select(a => 
        a.CategoryName).FirstOrDefault();   
  

Я в замешательстве и не знаю, в чем на самом деле заключается моя проблема. На самом деле, я хочу, чтобы имя основной категории возвращалось в виде строки, чтобы я мог ее отобразить

Ответ №1:

Вы имеете в виду, что хотите получить ParentCategoryName с помощью childCategoryId или ParentCategoryID?

Если вы хотите получить parentCategoryName по childCategoryID, вы можете сделать это следующим образом:

 //get ParentCategoryID by childCategoryID
    var ParentCategoryID=_unitOfWork._Context.Categories.Where(c=>c.CategoryID==childCategoryID).FirstOrDefault().CategoryID;
//get PatentCategoryName by ParentCategoryID 
    var PatentCategoryName=_unitOfWork._Context.Categories.Where(c=>c.CategoryID==ParentCategoryID).FirstOrDefault().CategoryName;
  

Если вы хотите получить parentCategoryName по ParentCategoryID, вы можете сделать это следующим образом:

 //get PatentCategoryName by ParentCategoryID 
        var PatentCategoryName=_unitOfWork._Context.Categories.Where(c=>c.CategoryID==ParentCategoryID).FirstOrDefault().CategoryName;