2014-11-11 6 views
0

내 개체를 바인딩하기 위해 Actionarguments에 매개 변수를 추가하고 싶지만 항상 개체가 null이고 속성이 바인딩되지 않은 이유는 무엇입니까 ??ActionArguments에 매개 변수 추가

아마도 GET이면서 POST가 아니기 때문일 수 있습니까? 그것을위한 해결책이 있습니까 ??

ActionFilter

public class CustomizedFilter : ActionFilterAttribute 
{ 
    /// <summary> 
    /// OnActionExecuting 
    /// </summary> 
    /// <param name="actionContext"></param> 
    public override void OnActionExecuting(HttpActionContext actionContext) 
    { 
     actionContext.ActionArguments.Add("Parameter", "Value"); 
    } 
} 

컨트롤러 이미 발생되는 모델 바인딩 때문이다

[HttpGet] 
    [CustomizedFilter] 
    public RestResult Get(InputObject value) 
    { 

    } 

InputObject

 public class InputObject 
     { 
      public string Parameter{get;set;} 
     } 

답변

0

. 따라서 InputObject 용 사용자 정의 모델 바인더를 구현해야합니다.

public override void OnActionExecuting(HttpActionContext actionContext) 
{ 
    if (actionContext.ActionArguments.ContainsKey("value") && actionContext.ActionArguments["value"] is InputObject) 
    { 
    var val = actionContext.ActionArguments["value"] as InputObject; 
    val.Parameter = "value"; 
    } 

    base.OnActionExecuting(actionContext); 
} 
+0

안녕 올렉, 덕분에 당신의 빠른 응답,하지만이 아닌 것을 내가 다른 키와 값을 받게되며 입력 개체가 다를 수 있기 때문에 찾고 있어요, 내가 원하는 : 또는 당신은 뭔가를 쓸 수 있습니다 Json을 InputObject에 매핑 할 수있는 동적 인 것을 만들려면 – user1520494

+0

그래서 사용자 정의 모델 바인더를 사용할 수 있습니다. –