如何在OnActionExecuted时访问当前Asp.Net MVC Action的参数

时间:2015-02-10 10:43:20

标签: c# asp.net asp.net-mvc

我想访问/拦截控制器操作并获取其参数和值。例如,我的行动是;

   public virtual JsonResult ProductAutoCompleteResult(string term, string moduleName)
    {
        var requestDTO = this.portalServiceClient.CreateRequestDTO<ProductRequestDTO>();
        requestDTO.Filter.Keyword = term;
        requestDTO.ModuleName = moduleName;

        ProductResponseDTO responseDTO =this.portalServiceClient.Channel.GetProductsByProductCategoryTypeCode(requestDTO);
        base.CheckResponse(responseDTO);
        var products = Mapper.Map<ICollection<ProductModel>>(responseDTO.Products);

        var result = products.Where(x => x.Name.Contains(term))
            .Select(x => new { id = x.ProductId, value = x.Name });
        return new JsonResult { Data = result, JsonRequestBehavior = JsonRequestBehavior.AllowGet };
    }

在这里,我想在OnActionExecuted事件和填充的responseDTO之后访问 responseDTO 的值。

1 个答案:

答案 0 :(得分:0)

如果在动作过滤器中使用,您可以使用属性filterContext.Controller.ViewData.Model并将其强制转换为相应的类型。如果在控制器上覆盖OnActionExecuted,则可以使用filterContext.Controller.ViewData.ModelViewData.Model属性。