filterContext.ActionParameters
을 사용할 수 있습니다. 예 :
모델 :
public class MyViewModel
{
public IEnumerable<string> Collection { get; set; }
}
액션 필터 :
public class MyActionFilterAttribute : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
var value = filterContext.ActionParameters["model"];
// TODO: do something with the value
base.OnActionExecuting(filterContext);
}
}
컨트롤러 :
요청
public class HomeController : Controller
{
[MyActionFilter]
public ActionResult Index(MyViewModel model)
{
return View();
}
}
: /?collection[0]=foo&collection[1]=bar
아주 좋은,하지만 ActionParameters가에서 사용할 수 없습니다 OnAction 실행 된 과부하. – user256034
@ user256034,'OnActionExecuted'는 액션 실행이 끝난 후에 호출되므로 최근에이 정보를 검색해야하는 이유가 궁금합니다. –
그리드 컨트롤의 데이터 요청입니다. 가져올 열 이름이있는 속성이 있습니다. 이 속성은 IEnumerable이 반환되는 저장소로 이동합니다. 이 IEnumerable은 뷰에 반환됩니다. 그러나 그것이 모든 것이 아닙니다. 이러한 데이터는 특수 그리드 컨트롤의 특정 XML 형식이어야합니다. actionfilter가 "IEnumerable to XML"논리를 어떻게 뒤 바꿔 놓을 수 있는지에 대해 알고 싶습니다. 하지만 action 매개 변수에서 열 이름이 필요합니다. – user256034