gpt4 book ai didi

asp.net-mvc - ASP.NET MVC - View 模型模式

转载 作者:行者123 更新时间:2023-12-01 19:41:27 26 4
gpt4 key购买 nike

我使用 MVC 框架 (ASP.NET MVC2/3/Razor) 才几个月,我真的很喜欢它,但是我很难找出 View 模型的标准。在我的项目中,我有一个 Models 文件夹(包含我的数据模型 - Linq DBML、Repository[ies]、扩展方法)和 Models/ViewModels 文件夹。我的 View 模型通常是可重用的类,通常只包含针对特定 View 需要访问的 LINQ 对象或对象集合的简单获取/设置属性。

现在我遇到的问题是弄清楚何时创建 View 模型。我的目标是尽可能频繁地使用 LINQ 对象作为 View 模型,特别是当它是编辑操作时。我的问题是,如果我有其他数据位可能只想用于显示目的怎么办?我不喜欢使用 ViewData/ViewBag 集合,因为访问这些集合的成员需要了解集合项的键(对于设计师/前端人员来说“猜测”并不容易)。我也不喜欢为每个 View 创建一个 ViewModel 的想法,因为它看起来像是不必要的困惑代码。

例如,假设我有一个员工的数据模型,并且我想显示一些与该员工无关的信息 - 例如,站点统计信息、动态菜单以及您能想到的可能来自数据库的任何其他信息。我应该通过什么模型来执行/Employee/Edit 操作?带有一堆 ViewData[] 的 Employee 对象,还是自定义的 EmployeeView?

有黄金标准吗?我缺少什么?你做了什么不同的事情,我应该调查一下?提前致谢!

最佳答案

我从不直接使用实体类作为 View 模型。我总是为每个 View 创建一个特定于 View 的模型,其中包含该 View 的数据。我开始使用 AutoMapper 在 View 模型和实体模型之间进行映射。我通过具有 ToViewModel<TEntity,TViewModel>() 的 ModelMapper 类来调解此问题用于处理标准映射的方法(仅调用自动映射器)和用于自定义映射的专用映射方法,特别是支持从 View 模型创建和更新实体。

关于asp.net-mvc - ASP.NET MVC - View 模型模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6077913/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com