[ad_1]
这就像我试图让我的菜单控制器显示我在数据库中添加的菜单,看看它们是否应该显示。
但是,例如,如果我只是获取内容,那么我将不会获取内容。
我的 Menu.cshtml 文件。
@page @model NewWebsite_Site_2018.Pages.View.ViewBar_Info.MenuModel @foreach (var item in Model.GetListMenu) { <a>@item.Name</a> }
菜单.cshtml.cs
C#
public List<ContentInfo> GetListMenu { get; set; } private readonly DBContext _dbContext; public MenuModel(DBContext context) { _dbContext = context; } public void OnGet() { GetListMenu = _dbContext.ContentInfo.Where(i => i.ShowMenu == true).OrderByDescending(i => i.Id).ToList(); }
这是我的菜单模型文件,我需要将其用于我的 _layout.cshtml 文件。
_Layout.cshtml在这里:
@{ var menuModel = new NewWebsite_Site_2018.Pages.View.ViewBar_Info.MenuModel(); }
@Html.Partial("View/ViewBar_Info/Menu.cshtml", menuModel.GetListMenu)
问题是如何让我的菜单出现?
错误: 没有给出与“MenuModel.MenuModel(DBContext)”所需的形式参数“context”相对应的参数
我尝试过的:
private MenuModel(DBContext context)
{
_dbContext = context;
}
public MenuModel(DBContext context): base() { _dbContext = context; }
解决方案1
这个错误非常明显:
你的 MenuModel
类有一个构造函数,它需要一个 DbContext
范围:
C#
public MenuModel(DBContext context)
您正在尝试通过调用构造函数来创建该类的实例 不传递任何参数:
var menuModel = new NewWebsite_Site_2018.Pages.View.ViewBar_Info.MenuModel();
编译器找不到不带任何参数的构造函数,因此它会根据您的问题产生编译器错误。
您需要将参数传递给构造函数:
var menuModel = new NewWebsite_Site_2018.Pages.View.ViewBar_Info.MenuModel(new DBContext());
或者向类添加无参数构造函数:
C#
public MenuModel() : this(new DBContext()) { }
[ad_2]
コメント