如何在运行时将值传递给Auto Mapper

时间:2011-02-06 21:56:50

标签: asp.net-mvc automapper

我刚刚开始使用Auto Mapper,它很棒:)

但是我遇到了以下情况的麻烦。我需要将一个值从我的控制器(使用asp.net mvc)传递给自定义解析器或格式化程序。我的控制器接收一个字符串标签&#34; Day&#34;,&#34; Week&#34;,&#34; Month&#34;等...用于获取过滤的任务范围。< / p>

如何将此值传递给我的解析器?

谢谢!

/// <summary>
    /// Ajax Method for filtering tasks by Date Range
    /// </summary>
    /// <param name="dateFilter">The date filter label ["Day", "Week", "Month", "All", "Last 30 Days"]</param>
    /// <returns>List of task objects</returns>
    [HttpGet]
    public JsonResult GetTasksByDateRange(DateFilters dateFilter)
    {
        List<Task> tasks = taskService.GetFilteredTasksByDate(dateFilter, "chobojunk@gmail.com");

        List<TaskTableViewModel> viewModelList = Mapper.Map<List<Task>, List<TaskTableViewModel>>(tasks);

        return Json(viewModelList, JsonRequestBehavior.AllowGet);
    }

//在RegisterMaps文件中

        Mapper.CreateMap<Task, TaskTableViewModel>().ForMember(dest => dest.DueDate, opt => opt.AddFormatter<DueDateFormatter>());

1 个答案:

答案 0 :(得分:0)

我能想到的唯一方法就是通过DI / IoC容器。使用解析器参数创建上下文对象,将其注入解析器,并在执行映射器之前从控制器更新它。