没有给出与所需形式参数相对应的参数


这就像我试图让我的菜单控制器显示我在数据库中添加的菜单,看看它们是否应该显示。

但是,例如,如果我只是获取内容,那么我将不会获取内容。

我的 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()) 
{
}

コメント

タイトルとURLをコピーしました