asp.net-mvc – 如何将对象传递给VIewModel的构造函数? ASP.NET
发布时间:2020-12-16 03:20:32 所属栏目:asp.Net 来源:网络整理
导读:我一直在使用Bob Cravens博客中描述的存储库模式来创建我的应用程序,但我有点新,并且仍在寻找解决方案.我想将我的DataService对象注入到我的ViewModel的构造函数中,这样我就可以创建一个SelectList对象,并在我的视图中创建一个下拉框.但是我似乎无法使绑定工
我一直在使用Bob Cravens博客中描述的存储库模式来创建我的应用程序,但我有点新,并且仍在寻找解决方案.我想将我的DataService对象注入到我的ViewModel的构造函数中,这样我就可以创建一个SelectList对象,并在我的视图中创建一个下拉框.但是我似乎无法使绑定工作,每次我创建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模块: 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); } 解决方法
你不应该这样做!
视图模型(实际上所有模型)应该只是带有一些数据的桶.他们不应该依赖任何业务逻辑,服务等. 控制器负责填充模型并将其传递给视图. public class ServerCreateViewModel { public SelectList Companies { get; private set; } } public ActionResult Create() { var viewModel = new ServerCreateViewModel { Companies = new SelectList(_dataService.Companies.All(),"CompanyName") }; return View(viewModel); } 应将DataService注入控制器,而不是视图模型. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-mvc – 具有多个应用程序的ASP.NET标识
- asp.net-mvc – DataContractJsonSerializer ReadObject Ex
- asp.net – 将routeValues的Dictionary传递给ActionLink
- ASP.NET – ActionResult参数在传递字符串时总是返回null –
- asp.net – 错误4005表单身份验证失败 – 提供的故障单已过
- asp.net – 要检查字符串值是否具有数值或C#
- asp.net-web-api – Web API和.NET 4.5:声明和权利
- asp.net-mvc – 属性似乎根本不起作用
- asp.net – 如何让gridview中的一列成为图像?
- asp.net-mvc – ASP.NET在基本控制器中重定向
推荐文章
站长推荐
- asp.net-mvc-3 – MVC 3子域路由
- asp.net – 永远不想在highcharts上隐藏工具提示
- asp.net-mvc – 如何限制对ASP.NET MVC中某些页面
- asp.net-mvc-2 – 我的Asp.Net C#类如何返回一个
- asp.net-mvc – 使用viewModels通过MVC中的User
- asp.net-mvc – 404 Asp.Net中的Http错误处理程序
- asp.net-web-api – 如何在ConfigureServices方法
- asp.net – Javascript之前asp:ButtonField点击
- asp.net-mvc – ASP.NET MVC中的非字符串角色名称
- asp.net – 获取隐藏字段的值
热点阅读