2011-02-06 74 views
0

我只是用自動映射開始值傳遞給自動映射,它是真棒:)如何在運行時

但是我遇到了一些麻煩以下情形。我需要從我的控制器(使用asp.net mvc)將值傳遞給自定義解析器或格式器。我的控制器接受一個字符串標籤「日」,「星期」,「月」等......用於獲取篩選的任務範圍。

如何將此值傳遞給我的解析器?

謝謝!

/// <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, "[email protected]"); 

     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>()); 

回答

0

我能想到的唯一辦法做到這一點是通過DI/IoC容器。使用解析器參數創建一個上下文對象,將其注入解析器,並在執行映射器之前從控制器更新它。