将ViewModel添加到MVC应用程序

时间:2016-10-24 12:57:25

标签: c# asp.net-mvc mvvm

在一个小型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。我知道这听起来很简单,只是对这里的流程感到困惑。

0 个答案:

没有答案