Mik*_*ynn 25 asp.net-mvc-4 asp.net-web-api
使用Web API,参数请求始终为null.我错过了使用强类型对象作为参数而不是简单类型作为参数的东西.
网址
http://localhost:2222/api/v1/divisions?EventId=30
Run Code Online (Sandbox Code Playgroud)
控制器动作
public virtual ApiDivisionsResponse Get(ApiDivisionsRequest request)
{
return _apiDivisionsService.GetDivisions(request);
}
Run Code Online (Sandbox Code Playgroud)
宾语
public class ApiDivisionsRequest : ApiAuthorizedRequest
{
public ApiDivisionsRequest()
{
Page = 1;
PageSize = 10;
}
public int EventId { get; set; }
public int PageSize { get; set; }
public int Page { get; set; }
public string[] Includes { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
Dar*_*rov 51
我非常强烈地邀请您阅读以下文章,以便更好地了解参数绑定在Web API中的工作原理.阅读之后,您将了解到默认情况下,Web API将查询字符串参数绑定到基本类型,并将主体内容请求复杂类型.
因此,如果需要将查询字符串参数绑定到复杂类型,则需要通过使用[FromUri]参数修饰参数来覆盖此默认行为:
public virtual ApiDivisionsResponse Get([FromUri] ApiDivisionsRequest request)
{
...
}
Run Code Online (Sandbox Code Playgroud)
是的,我同意你的观点 - 这是一个混乱 - 模型绑定在普通的ASP.NET MVC中非常容易,他们在Web API中创造了一个噩梦.但是一旦你知道它是如何工作的,你就会避免陷阱.
| 归档时间: |
|
| 查看次数: |
19127 次 |
| 最近记录: |