В настоящее время я работаю над проектом MVC 3, используя Ninject в качестве моего DI, бизнес-объекты хранятся в отдельной сборке. Я сталкиваюсь с проблемой с параметрами контроллера, при повторной публикации для операций CRUD я получаю сообщение об ошибке «Не удается создать экземпляр интерфейса». Я знаю, что вы не можете создать экземпляр интерфейса, но, похоже, единственный способ, которым я могу обойти это, - это использовать привязку пользовательской модели и пропустить FormCollection. Это кажется очень запутанным, и я хочу сохранить как можно больше кода, специфичного для типов, из проекта - следовательно, везде есть интерфейсы и Ninject для DI - бетонов. Мало того, что привязка пользовательских моделей кажется грязной - не потеряю ли я свои аннотации данных?
Код для описания того, что у меня есть:
public ActionResult Create()
{
// I'm thinking of using a factory pattern for this part
var objectToCreate = new ConcereteType();
return (objectToEdit);
}
[HttpPost]
public ActionResult Create(IRecord record)
{
// check model and pass to repository
if (ModelState.IsValue)
{
_repository.Create(record);
return View();
}
return View(record);
}
Кто-нибудь сталкивался с этим раньше? Как ты справился с этим?
Спасибо!