5
我一直在使用Bob Cravens博客中描述的存儲庫模式來創建我的應用程序,但我有點新,但仍然找到了解決方法。我想將我的DataService對象注入到ViewModel的構造函數中,這樣我就可以創建一個SelectList對象,並在我的視圖中創建一個下拉框。然而,我似乎無法獲得綁定工作,每次創建ViewModel時,它都會查找/執行無參數的構造函數!我已經嘗試了各種使用這裏的答案,但無濟於事。幫助將不勝感激。如何將對象傳遞給我的VIewModel的構造函數? ASP.NET MVC 3,Ninject
視圖模型:
public class ServerCreateViewModel
{
public SelectList Companies { get; private set; }
public ServerCreateViewModel()
{
}
public ServerCreateViewModel(DataService _dataService)
{
Companies = new SelectList(_dataService.Companies.All(), "Id", "CompanyName");
}
Ninject模塊:
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>());
控制器:
public ActionResult Create(ServerCreateViewModel viewModel)
{
return View(viewModel);
}
謝謝,多數民衆贊成我最初如何,但我完全不確定這是否是正確的方式來做到這一點!欣賞正確的。 – Kiada
請問下臺選民可以解釋一下嗎? –