Ho utilizzato il modello di repository descritto nel blog di Bob Cravens per creare la mia applicazione, ma sono un po 'nuovo e continuo a trovarlo. Voglio iniettare il mio oggetto DataService nel costruttore del mio ViewModel in modo da poter creare un oggetto SelectList e creare una casella a cascata nella mia vista. Tuttavia non riesco a far funzionare le associazioni, ogni volta che creo il ViewModel cerca/esegue il costruttore senza parametri! Ho provato vari modi usando le risposte qui su SO ma senza successo. L'aiuto sarebbe molto apprezzato.Come posso passare un oggetto nel costruttore del mio VIewModel? ASP.NET MVC 3, Ninject
ViewModel:
public class ServerCreateViewModel
{
public SelectList Companies { get; private set; }
public ServerCreateViewModel()
{
}
public ServerCreateViewModel(DataService _dataService)
{
Companies = new SelectList(_dataService.Companies.All(), "Id", "CompanyName");
}
Ninject modulo:
Bind<DataService>().ToSelf()
.InRequestScope();
var _dataService = Kernel.Get<DataService>();
Bind<ServerCreateViewModel>()
.ToSelf()
.WithConstructorArgument("_dataService", _dataService);
//Bind<ServerCreateViewModel>()
// .ToSelf()
// .WithConstructorArgument("_dataService", ctx => ctx.Kernel.Get<DataService>());
Controller:
public ActionResult Create(ServerCreateViewModel viewModel)
{
return View(viewModel);
}
Grazie, ecco come l'avevo inizialmente ma non ero sicuro se fosse il modo corretto di farlo! Apprezzo essere messo bene su quello. – Kiada
Potrebbe spiegare l'elettore, per favore? –