参数字典中包含参数'id'非空类型的'& # 39;
本文关键字:参数 类型 id 包含 字典 | 更新日期: 2023-09-27 18:13:17
我得到以下错误:
参数字典包含一个非空类型'System '的参数'id'的空条目。Int32' for方法'。获取(Int32)' in 'RecipeTracker.Controllers.StandardDirectionsController'。可选形参必须是引用类型、可空类型,或者声明为可选形参。
我在我的全局文件中定义了这个:
protected void Application_Start(object sender, EventArgs e)
{
// Code that runs on application startup
RouteTable.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = System.Web.Http.RouteParameter.Optional });
}
这是我的控制器
App_Data.databaseDataContext _context = new App_Data.databaseDataContext();
// GET api/<controller>
public List<string> Get()
{
var direction = (from d in _context.ViewStandardDirections("-1")
select d.Direction);
return direction.ToList();
}
// GET api/<controller>/5
public List<Models.DirectionChoices> Get([FromUri]string q)
{
var choices = (from i in _context.ViewStandardDirections(q)
select new Models.DirectionChoices
{
text = i.Direction
});
return choices.ToList();
}
这是我尝试过的url,但失败了:
http://localhost:9328/api/standarddirections/heat
如果我删除/heat部分,那么它查询数据库就好了。我根据另一个帖子的建议添加了[FromUri],但它的行为和没有它一样
参数名必须匹配路由:
//public List<Models.DirectionChoices> Get([FromUri]string q)
public List<Models.DirectionChoices> Get([FromUri]string id)