问题标签 [viewmodel]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
asp.net-mvc - 将视图中多个表中的数据显示为列表 - ASP.Net MVC
我有以下两个表(基本大纲):
Tbl_CategoryType
ID 级别ID 说明
Tbl_Levels ID 名称
基本上,我想在基于 Tbl_CategoryType.LevelID 编号引用 Tbl_Levels.Name 数据的同时呈现 Tbl_CategoryType 表中的所有信息。
我尝试在我的存储库中使用加入,如下所示;
但是,当我调用该方法时,我无法将其分配给任何类型,因为它不适合 Category 或 Level 的类型。
我假设我需要通过自定义视图模型来执行此操作,但无法弄清楚步骤。
提前致谢
asp.net-mvc - 如何处理具有多个聚合根的视图模型?
目前,我得到了非常糟糕的视图模型。
类看起来像这样=>
问题是 Reader 类型来自域模型(违反 SRP)。
基本上,我正在寻找设计技巧(即,将视图模型拆分为输入/输出是个好主意吗?)如何使我的视图模型无摩擦且对开发人员友好(即 - 映射应该使用控制器基类自动工作) ?
我知道 AutoMapper 框架,我很可能会使用它。
那么,再一次 - 尝试创建正确的视图模型时常见的问题是什么?如何构造它?当需要多域对象输入时如何进行映射?
当视图需要来自多个聚合根的数据时,我感到困惑。我正在创建具有图书馆、阅读器、书目记录等实体的应用程序。
在我的情况下 - 在域级别,将所有这 3 种类型分组LibraryReaderThatHasOrderedSomeBooks
或诸如此类是没有意义的,但是应该显示关于特定图书馆中特定读者的订购书籍列表的视图需要它们全部。
OrderedBooksList
所以 -用OrderedBooksListModel
下面的视图模型和LibraryOutput
视图模型创建视图似乎很好。甚至更好的视图模型,它利用展平技术并具有诸如等的道具。ReaderOutput
BibliographicRecordOutput
OrderedBooksListModel
ReaderFirstName
LibraryName
但这会导致映射问题,因为输入不止一个。
这不再是 1:1 的关系,我只踢一个聚合根。
这是否意味着我的域模型有点错误?
那么纯粹存在于 UI 层的视图模型字段(即表示选中选项卡的枚举)呢?
我不愿意这样做=>
好像写了很多。:)
行。我对这个问题想了很多,是的 - 添加另一个抽象层似乎是一个解决方案 =>
所以 - 在我看来,这已经奏效了,现在是玩弄的时候了。
泰吉米
apache-flex - 在 Flex 中实现 MVVM (ViewModel) 模式的资源?
谁能指导我在 Flex 3 中实现 ViewModel 的一些代码或教程?
我在网上找到的只是 Silverlight 的示例。
wpf - 在 WPF CAL MVVM 中初始化模型和视图的正确方法是什么
我遇到了两种在 WPF CAL MVVM 中初始化视图和视图模型的方法。
1 - 似乎更受欢迎。要求您解析 ViewModel 以自动解析 View。ViewModel 包含有关视图的信息。
2 - 看起来更干净,并从 ViewModel 中删除了 View。要求您解析 View 以自动解析 ViewModel。将对象注入视图(不确定这是否好)。
初始化视图和模型的公认方法是什么,每种方法的优缺点是什么。您应该将对象注入您的视图吗?
c# - AutoMapper - 如何使用 ConstructedBy 方法将参数传递到自定义解析器?
在我的 ASP.NET MVC 2 (RC) 项目中 - 我使用 AutoMapper 在 Linq to Sql 类(Media)和视图模型(MediaVM)之间进行映射。视图模型有一个 SelectList 属性,用于视图中的下拉菜单。我有一个自定义值解析器来填充数据库中的 SelectList 属性项,但我想知道是否有办法将源模型中的几个值传递到解析器(使用 ConstructedBy 方法?)到 a)定义所选项目和 b ) 从数据库中过滤项目。源对象被传递到自定义解析器 - 但解析器用于具有不同类型源对象的几个不同视图模型,因此宁愿定义从我的映射配置中获取值的位置。这是我的视图模型:
自动映射器映射配置:
能够在 .ForMember 映射子句上做这样的事情会很好:
有没有办法做到这一点?
asp.net-mvc - 将验证属性从域实体映射到 DTO
我有一个标准的域层实体:
它应用了某种验证属性:
如您所见,我已经完全弥补了这些属性。这里使用哪个验证框架(NHibernate Validator、DataAnnotations、ValidationApplicationBlock、Castle Validator 等)并不重要。
在我的客户端层中,我还有一个标准设置,我不使用域实体本身,而是将它们映射到我的视图层使用的 ViewModels(又名 DTO):
然后假设我希望我的客户端/视图能够执行一些基本的属性级验证。
我看到我能做到这一点的唯一方法是在 ViewModel 对象中重复验证定义:
这显然不能令人满意,因为我现在在 ViewModel (DTO) 层中重复了业务逻辑(属性级验证)。
那么可以做些什么呢?
假设我使用像 AutoMapper 这样的自动化工具将我的域实体映射到我的 ViewModel DTO,那么以某种方式将映射属性的验证逻辑也传输到 ViewModel 不是很酷吗?
问题是:
1)这是个好主意吗?
2)如果可以,可以吗?如果没有,有什么替代方案(如果有的话)?
提前感谢您的任何意见!
asp.net-mvc - 如何在同一个 asp.net mvc 视图中处理过滤和未过滤的列表?
我需要一种方法来显示用户是否订阅了服务并将其显示到视图中的表格中。到目前为止,我能够显示用户是否已订阅服务,但无法显示他们何时未订阅。
我创建了一个这样的视图模型:
public class MyServicesController : Controller
{
然后将服务表呈现到视图中,如下所示:
它可以很好地提取和过滤订阅该服务的任何用户,然后查看当前用户是否在该列表中。
但是考虑到通过使用<%foreach (var user in serv.AspnetUser)
子句以这种方式过滤,我只从选择了特定给定服务的用户列表中提取。
因此,我目前无法获取未选择的服务并显示“尚未订阅”字符串以呈现到表中该服务的行中。
我尝试创建一个布尔函数来提取上面的“用户”变量并返回当前用户是否订阅了该服务的真或假:
但无法想出一种方法将其放入视图中,并通过尝试这种方法来感受我过于复杂化的感觉。
谁能看到一个不那么复杂的方法来做到这一点?
非常感谢,
保罗
asp.net-mvc - 回发后asp.net mvc多选记住状态
我在我的 asp.net mvc 应用程序上使用 DataAnnotations 进行错误检查,我也在使用强类型 ViewModels。
我的错误检查工作正常,如果字段为空白,则会将错误消息发回我的视图。但是,我的表单上有一个 MultiSelect / Listbox,我需要记住它在出错后的状态。
目前我的 ViewModel 看起来像这样(我只包含了相关属性):
这是我在控制器中的操作:
我的 MultiSelect 采用 FavouriteGenreViewModel 的列表来选择 GenresList 中的选项,它在 GET 操作中使用 AutoMapper 执行此操作,但显然我不能在帖子上使用 AutoMapper,因为它会忘记我发布的值。
我曾考虑过使用逗号分隔的 ID 字符串而不是 FavouriteGenreViewModel 的列表,这样我可以在回发后重新使用该值......但是我希望有人有更优雅的方式来处理这个问题。
谢谢!
保罗
wpf - WPF 条件验证
我在验证视图模型中的电子邮件地址时遇到问题。我正在检查的财产是-
我无法弄清楚如何对“[SOME Operator("EnabledField")]”行进行编码。我要做的是,如果单击 EnabledField 复选框,则验证此字段是否为有效的电子邮件地址。
编辑注释 - 将条件从或更改为和
asp.net - 结合 ViewModel (WPF/Silverlight) 和强类型 ViewData (ASp.NET MVC)?
注意:在下文中,我将对 WPF/Silverlight 中的 ViewModel 和 ASP.Net MVC 中的强类型 ViewData 使用术语“ViewModel”。
我想为同一个项目创建 ASP.Net MVC 和 WPF/Silverlight 客户端(换句话说,针对同一个 DataModel),我应该为每个客户端技术创建一个通用 ViewModel 项目还是一个单独的 ViewModel?
我想相信一个通用的 ViewModel 是正确的做法,但是创建依赖属性或 JSON 字符串的需要使它看起来不兼容。
也许另一种解决方案是将 ViewModel 的公共部分放入 DataModel 层?
我将不胜感激任何可以使我朝着正确方向前进的帮助,谢谢