在一个小型MVC应用程序上工作,我试图在项目中实现ViewModel模式。目前的架构如下:
查看>控制器>实用工具类>数据提供者
数据提供程序调用服务,然后返回响应对象
public class Response
{
public Response();
[DataMember]
public List<CSI.Common.Libraries.Models.SARequest> Requests { get; set;}
}
单个SARequest对象:
namespace CSI.Common.Libraries.Models
{
[Serializable, DataContract]
public class SARequest
{
[DataMember]
public int Id { get; set; }
[DataMember]
public string AdminUserName { get; set; }
[DataMember]
public DateTime RequestDate { get; set; }
[DataMember]
public string Action { get; set; }
[DataMember]
public string LegalEntityName { get; set; }
[DataMember]
public string Action { get; set; }
}
然后我在控制器中处理对该呼叫的各个请求:
private List<SARequest> GetSARequests()
{
var requests = CSIAdminUtil.GetSubsidiaryRequests();
var requestList = requests.Requests;
return requestList;
}
然后我用:
@model List<SA Request>
在带有for循环的视图上显示数据。
在视图上有相应的字段,我希望根据请求返回的操作允许/禁止编辑。因此,我计划将属性添加到ViewModel,然后根据为该请求返回的操作设置这些属性。
我不知道从哪里开始。我很久以前就使用过VM,这似乎是从数据中抽象逻辑的好方法。我是否只是在GetSARequests调用中创建到ViewModel的映射,然后根据SARequestViewModel(计划使用的VM)列表创建视图,或者我是否需要在数据提供程序中执行此操作。
我在项目中添加了automapper,认为我正确地拥有了所有字段。我现在的问题是,我在哪里实际将模型转换为viewModel。我知道这听起来很简单,只是对这里的流程感到困惑。