没有为此对象定义无参数构造函数nopCommerce 4.0

时间:2018-07-04 13:42:30

标签: c# constructor asp.net-core-2.0 nopcommerce nopcommerce-4.0

当我出于编辑数据原因试图添加视图时,它给了我错误No parameterless constructor defined for this object

这是我的控制者:

public class MyNewPageController : Controller
{
    MyNewPageController c = new MyNewPageController();

    public MyNewPageController()
    {

    }

    public IActionResult Index(PedroJorge.DAL.ProductDAL pd)
    {
        List<CS_mostrarModel> pList = new List<CS_mostrarModel>(pd.Read());

        return View("~/Views/MyNewPage/Index.cshtml", pList);
    }

    public ActionResult Edit(int ID)
    {
        List<CS_mostrarModel> pList = new List<CS_mostrarModel>();
        //Get the student from studentList sample collection for demo purpose.
        //You can get the student from the database in the real application
        var std = pList.Where(s => s.ID == ID).FirstOrDefault();

        return View(std);
    }

    [HttpPost]
    public ActionResult Edit(Product std)
    {
        //write code to update student 

        return RedirectToAction("Index");
    }

}

public class SampleContext : DbContext
{
    public DbSet<Order> Orders { get; set; }


    public SampleContext(DbContextOptions<SampleContext> options) : base(options)
    {

    }

    protected override void OnModelCreating(ModelBuilder modelBuilder)
    {
        modelBuilder.Entity<Order>().ToTable("Order");
    }

}

型号:

 public class CS_mostrarModel
{
    public int ID { get; set; }
    public string ProductName { get; set; }

    [Display(Name = "Release Date")]
    [DataType(DataType.Date)]
    public DateTime Date { get; set; }

    [Column(TypeName = "decimal(18, 2)")]
    public int Price { get; set; }
    public int PersonsNumber { get; set; }

    public string TourType { get; set; }
    public int CarsNumber { get; set; }
}

我不知道出什么问题了,我已经尝试了在互联网上看到的所有内容,所以如果有人知道如何解决此问题,请帮忙!

1 个答案:

答案 0 :(得分:1)

除非这是一个错字,否则,当框架尝试激活控制器时,让控制器在本地字段中创建自身实例的机会很可能导致堆栈溢出异常。

每个实例将尝试创建另一个实例,直到堆栈空间不足为止。

在以前的版本中,框架和标准无助的吞噬了创建控制器时抛出的异常

  

没有为此对象定义无参数构造函数

消息被抛出。

删除

 MyNewPageController c = new MyNewPageController();

从控制器开始,应该可以在请求时进行初始化。