Один из подходов - позволить Ninject разрешить ваши ProductsIndex
экземпляры. Если вы сделаете это, он будет автоматически заполнять аргументы конструктора, как требуется, при условии, что IProductRepository
также разрешается с помощью Ninject.
В вашем случае может быть что-то вроде:
Kernel.Bind<IProductRepository>().To<CTDAL.Product>();
Kernel.Bind<ProductsIndex>().ToSelf();
Теперь ваш ProductsController
может выглядеть так:
public class ProductsController : Controller
{
private readonly IProductRepository productRepository;
private readonly ProductsIndex productsIndex;
public ProductsController(IProductRepository productRepository,
ProductsIndex productsIndex)
{
this.productRepository = productRepository;
this.productsIndex = productsIndex;
}
//
// GET: /Products/
public ActionResult Index()
{
return View(productsIndex);
}
}
Имейте в виду, что это не позволит сопоставить значения запроса с вашей Viewmodel, поэтому данные в вашей Viewmodel будут зависеть только от параметров, которые вы передаете в него во время его разрешения (в данном случае продукт хранилище).