0

我想在 Actionarguments 上添加一个参数,以绑定我的对象,但对象始终为 null 并且属性未绑定,为什么?

也许是因为那是 GET 而不是 POST?有解决办法吗??

动作过滤器

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)
    {

    }

输入对象

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

1 回答 1

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);
}
于 2014-11-11T19:14:27.930 回答