我想在Actionarguments上添加一个参数,以便绑定我的对象,但总是对象为null且属性没有绑定,为什么??
也许是因为那是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 :(得分: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);
}