3

从 ASP.NET Web API 的 beta 版本开始,我习惯于HttpActionContext.RequestContentKeyValueModel从 POST 请求的正文中获取输入参数:

public override void OnActionExecuting(HttpActionContext actionContext)
{
    var requestContentKeyValueModel = actionContext.RequestContentKeyValueModel;
    //Do something in here

    base.OnActionExecuting(actionContext);
}

但是在新的发布版本RC中,这个属性消失了,有什么替代方法吗?

4

1 回答 1

5

您可以使用HttpContext.Current.Request.Form.

编辑

您始终可以将其隐藏在界面后面:

public interface IKeyValueProvider
{
    string GetValue(string key);
}

class RequestFormKeyValueProvider : IKeyValueProvider
{
    public string GetValue(string key)
    {
        return HttpContext.Current.Request.Form[key];
    }
}

注入IKeyValueProvider您的控制器并模拟您的测试。

于 2012-06-07T19:20:13.730 回答