已添加到Razor页面的新MVC控制器中的参考DbContext

时间:2019-06-14 02:06:34

标签: asp.net-mvc dbcontext razor-pages

我有一个没有MVC模块的纯.NET Core 2.2 Razor Pages应用程序。 然后,我添加了一个Controller文件夹,一个View文件夹,并使用了我已经拥有的Models文件夹。

我正在尝试在新的Controller中引用我的数据库,但似乎无法获取语法。 这是我的工作课程页面.cs文件,其工作DbContext在顶部:

namespace OESAC.Pages.Courses
{
    public class IndexModel : PageModel
    {
        public readonly MyDbContext _context;
        public IndexModel(MyDbContext context)
        {
            _context = context;
        }

下面是我以为我想通了但出现错误的我的MVC控制器代码的顶部。

System.NullReferenceException:“对象引用未设置为对象的实例。” _configuration为空。

最后两行是我得到错误(保存更改)的地方。常规数据驱动的Razor页面与db.SaveChanges一起使用,因为我的语法正确,可以声明_context。

namespace OESAC.Controllers
{
    public class HomeController : Controller
    {

        MyDbContext db = new  MyDbContext();


 public ActionResult StartTransaction(string oesacID, string fee)
        {
            var model = new Models.PayPalTransactions();

            string strToday = DateTime.Today.ToString();

            model.TransactionDate = DateTime.Parse(strToday);
            model.RecordCreated = DateTime.Parse(strToday);
            model.CourseID = 4444;
            model.SponsorID = 3333;
            model.AmountCharged = 1;

            //INSERT TRANSACTION ROW IN TRANSACTION TABLE

           db.PayPalTransactions.Add(model);
           db.SaveChanges();

1 个答案:

答案 0 :(得分:1)

您也可以在控制器中使用依赖项注入。

public class HomeController : Controller
{
    private readonly MyDbContext _context;

    public HomeController(MyDbContext context)
    {
        _context = context;
    }
    ...
}