Для этого объекта не определен конструктор без параметров nopCommerce 4.0 - PullRequest
0 голосов
/ 04 июля 2018

Когда я пытаюсь добавить представление по причине редактирования данных, выдает ошибку 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 голосов
/ 04 июля 2018

Если это не опечатка, то есть вероятность, что контроллер, создающий свой экземпляр в локальном поле, вызывает исключение переполнения стека, когда платформа пытается активировать контроллер.

Каждый экземпляр будет пытаться создать другой, пока у вас не останется свободного места в стеке.

В предыдущих версиях исключение, создаваемое при создании контроллера, было проглочено фреймворком и стандартным бесполезным

Для этого объекта не определен конструктор без параметров

сообщение было брошено.

Удалить

 MyNewPageController c = new MyNewPageController();

от контроллера, и он должен быть в состоянии инициализироваться при запросе.

...