Я использую Unity Application Block вместе с UnityMvc. У меня есть контроллер с именем HomeController, который имеет действие:Единство: для этого объекта не задан конструктор без параметров
public ActionResult Add(UnitOfWork UnitOfWork)
{
Person p = new Person();
p.Code = "1202";
p.City = new City() { Code = "21", Name = "Paris" };
UnitOfWork.Save();
ViewBag.Message = "Done.";
return View();
}
параметр UnitOfWork имеет конструктор так:
public UnitOfWork(Context Context)
{
this.context = Context;
}
и "Сохранить" Метод:
public void Save()
{
this.context.SaveChanges();
}
когда единство пытается для создания объекта UnitOfWork для действия «Добавить» возникает следующая ошибка:
Нет конструктора без параметров, определенного для этого объекта.
Кажется, что UnitOfWork является параметром для действия «Добавить», он должен иметь конструктор без параметров.
Действительно ли это или любое тело имеет решение?
Просьба показать ваш конструктор. Также обратите внимание, что вы обычно не можете и не должны вводить услуги с помощью методов действий. Вместо этого вы должны использовать конструктор. – Steven
Да, проблема была в отсутствии конструктора. Модельное связующее отвечает за построение объектов параметров действия. – user2653400
Вы можете написать свой собственный ModelBinder, чтобы создать тип, который не имеет конструктора без параметров. –