我有一个没有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();
答案 0 :(得分:1)
您也可以在控制器中使用依赖项注入。
public class HomeController : Controller
{
private readonly MyDbContext _context;
public HomeController(MyDbContext context)
{
_context = context;
}
...
}