Entity;
public class Category
{
[Key] 。
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int categoryID { get; set; }
public string Name { get; set; }
public string Description { get; set; }
}
public class SubCategoryKey ]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int subCategoryID { get; set; }
public string Name { get; set; }
public string Description { get; set; }
public int CategoryID{ get; set; }
}
模型 ;
public class CategoryModelpublic List<Entity.Category> Categories { get; set; }
public List<SubCategory> SubCategories { get; set; }
}
控制器;
public IActionResult Index()
{
var categories = _adminService.GetAllCategory()。
var subcategories = _adminService.GetAllSubCategories();
var entity = new CategoryModel()
{
Categories = 類別。
SubCategories = subcategories
};
return View(entity);
}
視圖。
@{
foreach (var category in Model.Categories)
{
@Html.Hidden("catID", category.categoryID)
<a href="#">@category. Name <i class="fa-angle-right" aria-hidden="true"> </i></a>
<ul class="sub-category">
@foreach (var subcategory in Model.SubCategories)
{
@if (subcategory.CategoryID == category.categoryID)
{
<li><a href="@subcategory.subCategoryID">@subcategory.Name</a>;</li>。
}
}
</ul>
}
}
你能解釋一下我如何在視圖一側的選單中顯示類別嗎?我可以拍攝類別,但我難以拍攝子類別。我分享了上面的資料庫方案。我將在選單中顯示為一個下拉選單。我認為在if部分有問題。
*
uj5u.com熱心網友回復:
你的子類別有資料嗎?這能行嗎?
foreach (var category in Model.Categories)
{
@Html.Hidden("catID", category.categoryID)
<a href="#">@category. Name <i class="fa-angle-right" aria-hidden="true"> </i></a>
@{
if (Model.SubCategories != null && Model.SubCategories.Any()
{
var subCategories = Model.SubCategories.Where(x => x.CategoryID == category.categoryID).ToList()。
if (subCategories != null && subCategories.Any() )
{
<ul class="sub-category">
@foreach (var subcategory in subCategories)
{
<li><a href="@subcategory.subCategoryID">@subcategory.Name</a>;</li>。
}
</ul>
}
}
}
}
uj5u.com熱心網友回復:
那么你打算實作一個多級下拉選單?我根據你的代碼做了一個例子。
控制器:
public IActionResult Index()
{
var categories = new List< Category>
{
new Category{ Name = "C1", categoryID = 1, },
new Category{ Name = "C2", categoryID = 2,},
new Category{ Name = "C3", categoryID = 3,}.
};
var subcategories = new List<SubCategory>
{
new SubCategory{ Name = "S1", subCategoryID = 1, CategoryID = 1 },
new SubCategory{ Name = "S2", subCategoryID = 2, CategoryID = 1 },
new SubCategory{ Name = "S3", subCategoryID = 3, CategoryID = 1 },
new SubCategory{ Name = "S4", subCategoryID = 4, CategoryID = 2 },
new SubCategory{ Name = "S5", subCategoryID = 5, CategoryID = 2 },
new SubCategory{ Name = "S6", subCategoryID = 6, CategoryID = 3 }.
};
var entity = new CategoryModel()
{
Categories = 類別。
SubCategories = subcategories
};
return View(entity);
}
查看:
@model CategoryModel
<style>
.dropdown-submenu {
position: relative;
}
.dropdown-submenu .dropdown-menu {
頂部。0;
左邊。100%。
margin-top: -1px;
}
</style>
<div class="dropdown"/span>>
< 按鈕 class="btn btn-secondary dropdown-toggle" type="按鈕" id="dropdownMenuButton" data-toggle="dropdown"/span> aria-haspopup="true"/span> aria-expanded="false"/span>>
選單
</button>
<ul class="dropdown-menu">
@foreach (var category in Model.Categories)
{
<li class="dropdown-submenu">
@Html.Hidden("catID", category.categoryID)
<a class="test dropdown-item" tabindex="-1" href="#"> @category.Name< /a>
<ul class="dropdown-menu"/span>>
@foreach (var subcategory in Model.SubCategories)
{
@if (subcategory.CategoryID == category.categoryID)
{
<li><a class="dropdown-item" href="@subcategory.subCategoryID">@subcategory.Name</a> </li>
}
}
</ul>
</li>
}
</ul>
</div>
@section scripts{
<script>
$(document).ready(function () {
$('.dropdown-submenu a.test').on("click", function (e) {
$(this).next('ul') .toggle()。
e.stopPropagation()。
e.preventDefault()。
});
});
</script>
}
結果:
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/320352.html
標籤:
上一篇:無法找到HttpPostedFileBaseVisualstudio2019
下一篇:ProAsp.netcoreMVC如何創建視圖串列并將資料串列傳遞給控制器(HowcanIpasslistofdatafromviewtocontrollers)

