سلام
من میخام یه ویوکامپوننت برای قسمت topmenu بنویسم ، مشکل من در قسمت ویو هست که چطور با استفاده از ویومدل، منوها را نمایش بدم . ممنون
public class TopMenuViewComponent : ViewComponent {
private readonly DataContext _dataContext;
public TopMenuViewComponent(DataContext dataContext)
{
_dataContext = dataContext;
}
public async Task<IViewComponentResult> InvokeAsync()
{
var qMenu = (from rows in _dataContext.Menus
select new MenuViewModel
{
Id = rows.Id,
Name = rows.Name,
URL = rows.URL
}).ToList();
return await Task.FromResult((IViewComponentResult)View("Defaul t", qMenu));
}
}
و یک ویو مدل برای اون در نظر گرفتم :
public class MenuViewModel {
public int Id { get; set; }
public string Name { get; set; }
public string URL { get; set; }
public int ParentId { get; set; }
}
و در صفحه html بصورت زیر عمل کردم :
@model MenuViewModel
@foreach (var item in Model.Where(@item.ParentId == 0))
{
<li class="has-dropdown megamenu">
<a asp-area="" asp-controller=@item.Name asp-action=@item.Name>@item.Name</a>
</li>
}
در این صفحه هر کاری میکنم و هر کدی می نویسم نمیتونم با ویو مدل ارتباط رو برقرار کنم و خطا ی experssion دارم . ممنون