通过Web Api和ASP在数据库中搜索项目.净的核心
本文关键字:项目 搜索 核心 数据库 Api Web ASP 通过 | 更新日期: 2023-09-27 18:06:36
我想在ASP中传递一个查询参数给控制器。净的核心。下面是两个相关的方法:
[Produces("application/json")]
[Route("api/Heroes")]
public class HeroesController : Controller
{
[HttpGet]
[NoCache]
public JsonResult Get()
{
return new JsonResult(_context.Heroes.ToArray());
}
[HttpGet("{searchTerm}", Name = "Search")]
//GET: api/Heroes/?searchterm=
public JsonResult Find(string searchTerm)
{
return new JsonResult(_context.Heroes.Where(h => hero.Name.Contains(searchTerm)).ToArray());
}
}
当我输入url /api/heroes
时,方法Get被调用。但是当我输入/api/heroes/?searchTerm=xxxxx
时,就会调用相同的Get方法,就像URL中没有任何参数一样。
我错过了什么?
根据您的代码,您可以尝试这样做:
[Produces("application/json")]
[Route("api/Heroes")]
public class HeroesController : Controller
{
[HttpGet]
[NoCache]
//GET: api/Heroes
//GET: api/Heroes?searchTerm=
public JsonResult Get(string searchTerm) //string is nullable, so it's good for optional parameters
{
if (searchTerm == null)
{
...
}
else
{
...
}
}
}
您不必在装饰器中放置查询字符串参数,因为它们会自动从方法参数映射。