我想发送一个 HTTP POST 请求,其正文包含构成简单博客文章的信息,没什么特别的。
我在这里读到,当您想在 Web API 中绑定复杂类型(即不是 的类型string
等int
)时,一个好方法是创建自定义模型绑定器。
我有一个自定义模型绑定器 ( BlogPostModelBinder
),它又使用自定义值提供程序 ( BlogPostValueProvider
)。我不明白的是,我应该如何以及在哪里能够从请求正文中检索数据BlogPostValueProvider
?
在模型活页夹中,我认为这是检索标题的正确方法。
public bool BindModel(HttpActionContext actionContext, ModelBindingContext bindingContext)
{
...
var title= bindingContext.ValueProvider.GetValue("Title");
...
}
而 BlogPostValueProvider 看起来像这样:
public class BlogPostValueProvider : IValueProvider
{
public BlogPostValueProvider(HttpActionContext actionContext)
{
// I can find request header information in the actionContext, but not the body.
}
public ValueProviderResult GetValue(string key)
{
// In some way return the value from the body with the given key.
}
}
这可能可以用更简单的方式解决,但由于我正在探索 Web API,让它工作会很好。
我的问题只是我找不到请求正文的存储位置。
感谢您的任何指导!