#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;