Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/332.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# asp.net mvc core 2生成的控制器中出错_C#_Asp.net Core_Asp.net Core 2.0 - Fatal编程技术网

C# asp.net mvc core 2生成的控制器中出错

C# asp.net mvc core 2生成的控制器中出错,c#,asp.net-core,asp.net-core-2.0,C#,Asp.net Core,Asp.net Core 2.0,我正在开发一个ASP.NETCore2MVC应用程序 我使用以下命令为我的后台办公室为每个表生成一个控制器: dotnet aspnet-codegenerator --project . controller -name MYTABLEController -m MYTABLE -dc MYDBContext 替换MYTABLE和MYDBContext是示例 以下是csharp控制器的外观: namespace MYPROJECT.Controllers { public class

我正在开发一个ASP.NETCore2MVC应用程序

我使用以下命令为我的后台办公室为每个表生成一个控制器:

dotnet aspnet-codegenerator --project . controller -name MYTABLEController -m MYTABLE -dc MYDBContext
替换MYTABLE和MYDBContext是示例

以下是csharp控制器的外观:

namespace MYPROJECT.Controllers
{
    public class MYTABLEController : Controller
    {
        private readonly MYDBContext _context;

        public ContactsController(MYDBContext context)
        {
            _context = context;
        }
您可以看到它创建了一个接受一个参数的构造函数:数据库对象entityframework

当我调用web页面时,我在这个上下文中得到一个错误,因为它没有初始化

以下是我要做的工作:

namespace MYPROJECT.Controllers
{
    public class MYTABLEController : Controller
    {
        private readonly MYDBContext _context = new MYDBContext();

        public ContactsController()
        {

        }
因此,我的问题是:

有没有解决这个问题的最佳方法?我想知道这是否真的是一个错误,或者我是否错过了什么

生成的每个chtml视图的外观都非常难看。有没有一些选择可以让你更性感


谢谢

生成的控制器代码看起来不错。您没有提到确切的错误,但是,我假设您得到了错误,因为您没有在您的服务容器中添加MYDBContext

在startup.cs文件中,您需要将此MYDBContext添加到服务容器中,以便您的控制器能够正确地注入它。例如

    services.AddDbContext<MYDBContext>(options =>
        options.UseSqlServer(Configuration["Data:DefaultConnection:ConnectionString"]));
然后,这意味着您的搭建的DbContext没有正确配置为使用正确的options参数注入。将构造函数更新为:

public partial class MYDBContext : DbContext
{
    public MYDBContext(DbContextOptions<MYDBContext> options)
        : base(options)
    {

    }

我现在得到了这个错误:System.ArgumentException:AddDbContext是通过配置调用的,但是上下文类型“MyDBContext”只声明了一个无参数构造函数。更新了答案,请查看。您可能需要更新DbContext类。在这种情况下,我遇到了InvalidOperationException:在尝试激活“XXXXX.ControllersXXXController”时,无法解析类型“XXXX.XXXXContext”的服务。很抱歉,事实上一切正常
public partial class MYDBContext : DbContext
{
    public MYDBContext(DbContextOptions<MYDBContext> options)
        : base(options)
    {

    }