this is my _Layout.cshtml page :
<header>
<nav class="navbar navbar-expand-sm navbar-toggleable-sm navbar-light bg-white border-bottom box-shadow mb-3">
<div class="container">
<a class="navbar-brand" asp-area="" asp-page="/Index">DyMenu</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target=".navbar-collapse" aria-controls="navbarSupportedContent"
aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
@Html.Partial("_PartialMenu")
</div>
</nav>
</header>
<div class="container">
<main role="main" class="pb-3">
@RenderBody()
</main>
</div>
This is my _PartialMenu.cshtml Page
@using DyMenu.Pages
@model DyMenu.Pages.IndexModel
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>@ViewBag.Title</title>
</head>
<body>
</body>
<nav class="navbar navbar-inverse">
<div class="container-fluid">
<div class="navbar-header">
</div>
@foreach (var item in Model.menuItems)
{
<ul class="navbar-nav flex-grow-1">
<li class="nav-item"> <a class="nav-link text-dark" asp-area="" asp-page="/@item.Url"> @item.Title </a> </li>
</ul>
}
</div>
</nav>
</html>
This is my Index.cshtml.cs page .
public class IndexModel : PageModel
{
#region Declartion
private IMenuItemAccess _menuItemAccessDA;
private readonly IConfiguration _configuration;
#endregion
public IndexModel(IConfiguration configuration)
{
_configuration = configuration;
}
[BindProperty]
public IEnumerable<MenuItem> menuItems { get; set; }
[BindProperty]
public MenuItem menuItemobj { get; set; }
public void OnGet()
{
GetMenu();
}
public IEnumerable<MenuItem> GetMenu()
{
string dbconnection = Utilities.InitializeConnectionString(_configuration);
_menuItemAccessDA = new MenuItemAccess(dbconnection);
menuItems = _menuItemAccessDA.GetMenuList();
ViewData["MenuModelData"] = menuItems;
return menuItems;
}
database : Menu
1, 0, 'Index', 'Index'
2, 0, 'Privacy', 'Privacy'
3, 0, 'Service', 'Service'
4, 0, 'Products', 'Products'
5, 0, 'Register', 'Register'
Other than index page not working . the following error thrown we i run . can anyone suggest with solution
Here Menu item is generated from index.cshtml.somewhere in this part made mistake. i am not sure how to pass the
menuitem model commonly
Error :
InvalidOperationException: The model item passed into the ViewDataDictionary is of type 'DyMenu.Pages.ProductsModel',
but this ViewDataDictionary instance requires a model item of type 'DyMenu.Pages.IndexModel'.
Thanks in advance
Karthik.K