asp.net-mvc – ViewModel中的最佳实践
|
我想知道这是一个好主意还是坏事,将诸如国家列表放在ViewModel中,以便绑定到下拉列表?例如,在网站的“注册”页面上. 我的印象是ViewModel应该代表填写表单的一个实例,但我认为我可能错了,因为我看到其他人在他们的ViewModel中放了像列表这样的东西. 将它放在某个静态类并直接从View中调用会不会更好? 像CommonData.ListCountries();然后使用Lambda直接在视图中转换为SelectList项目列表? 解决方法正如您所知,有多种方法可以实现您的目标.虽然 MVC design pattern鼓励某些应用程序组织如何组织模型,但视图和控制器最终是一个偏好问题.Scott Allen讨论了他在博客文章中处理ASP.NET MVC drop down lists的偏好. Scott使用扩展方法将复数类型的可枚举转换为IEnumerable< SelectListItem>在他的模型上.然后他描述了在回发后,ASP.NET MVC将不会返回IEnumerable< SelectListItem>他发送到视图,但只发送用户选择的值.然后他建议使用两个模型可以简化事情. 这是我称之为ViewModels和FormModels的合理描述. ViewModel将显示数据携带到视图,FormModel用于将收集的数据传送回控制器动作.进一步解释: > ViewModels包含有助于呈现视图的数据.通过以这种方式组织我的ViewModel,我可以放置所有必要的信息,以将特定视图呈现到关联的模型中.这使我不必将ViewData用于任何不是真正临时的事情. 在任何一种情况下,我都有一个硬规则到never reuse a model for a different view.让你的模型与用于渲染它们的视图紧密对齐,使你的视图更容易编写.您不必担心静态方法之类的问题,因为您的模型应该以易于呈现的形式将数据传递到其关联的视图.像AutoMapper这样的工具可以帮助将域对象“展平”为模型以用于显示目的. 额外阅读结账:ASP.NET MVC terminology is tripping me up – why ‘ViewModel’? (编辑:日照站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc – ASP.NET MVC中的Windows Live ID
- asp.net-mvc – 缩小ASP.NET MVC中的Action Filter属性
- asp.net-mvc – ASP.NET MVC忽略所有url结尾的“.html”
- asp.net-core – 具有取消令牌的自定义AspCore中间件
- ASP.NET中的超链接控件和链接控件有什么区别?
- asp.net-mvc – 不应加载引用程序集以执行
- asp.net-web-api – Web Api:找不到System.Net.Http版本2.
- asp.net-core – 如何使用FluentValidation.AspNetCore和Fl
- asp.net-web-api – ASP身份OAuth令牌 – 我应该在移动应用
- asp.net-mvc-3 – DropDownListFor Unobtrusive Validation
- Asp.Net 5分钟实现网页实时监控
- 如何从经典ASP输出Excel * .xls文件
- asp.net-core – 在asp.net vnext中使用Startup.
- asp.net – 动态创建和共享Google云端硬盘文件夹
- asp.net-mvc – 为什么在视图引擎中指定位置时,v
- asp.net-mvc – 如何继承ASP.NET MVC控制器并仅更
- asp.net-mvc-3 – ASP.Net MVC 3:在哪里处理会话
- kendo-ui – 剑道网格刷新(数据绑定两次)
- asp.net – 如何使用ajax调用跨域web api?
- asp.net-mvc – ASP.NET MVC路由和静态数据(即图
