【发布时间】:2013-11-26 17:46:34
【问题描述】:
我有一个Web API,如下所示...
public class LeaguesController : ApiController
{
//api/Leagues/active/1
//api/Leagues/complete/1
//api/Leagues/both/1
[GET("api/Leagues/{type}/{id}")]
public List<Competition> Get([FromUri]int id,
[FromUri]CompetitionManager.MiniLeagueType type)
{
return CompetitionManager.GetUsersMiniLeagues(id, true, type);
}
//api/Leagues/GetMiniLeagueTable/3
[GET("api/Leagues/GetMiniLeagueTable/{id}")]
public List<SportTableRow> GetMiniLeagueTable([FromUri]int id)
{
return SportManager.GetMiniLeagueTable("", id).TableRows;
}
}
当我调用第一个方法Get 时,它工作正常。
当我使用 fiddler 或 Chrome REST Client 调用第二种方法GetMiniLeagueTable 时,出现以下错误:
{ 消息:“请求无效。” MessageDetail: "参数 字典包含不可为空的参数“类型”的空条目 为方法输入“CompetitionManager+MiniLeagueType” 'System.Collections.Generic.List`1[竞争] Get(Int32, MiniLeagueType)' 在'LeaguesController' 中。可选参数必须是 引用类型、可为空的类型或被声明为可选项 参数。” }
我正在使用AttributeRouting 来装饰方法,但这似乎不起作用。在我介绍 MiniLeagueType 之前它运行良好。
有没有人遇到过这个问题,或者你能指出我哪里出错了吗?
【问题讨论】:
-
你怎么称呼它。有一些东西不应该是 null 传递为 null
标签: c# asp.net-web-api asp.net-web-api-routing attributerouting