我想将productId通过查询字符串传递给控制器,控制器将根据productId检索数据。将查询字符串传递给控制器的正确方法是什么?
http://localhost:22343/Product?pid=1
Route("api/getdevice")]
[HttpGet("{pid}")]
public IActionResult GetById(string pid)
{
int PId = Convert.ToInt32(pid);
var selectProducts = (from p in _db.product
where p.ProductId == PId
select p);
ProductId是Device id中的外键,Device Id是主键。
AJAX: 网址:API /的getDevice
我正在尝试将数据打印到html。
答案 0 :(得分:0)
我相信你正在混合api。您不应该使用RouteAttribute,而是将完整路径传递给HttpGet,如下所示:[HttpGet("api/getdevice/{pid}")]
为了传递结果,您需要更改方法签名以返回您的产品集合所包含的内容,或者将其投影到dto,如果它包含许多您想要从api的使用者隐藏的内容,如下所示:
var process = _db.product.SingleOrDefault(p => p.ProductId == PId);
return process != null ? new MyDto(process) : null;
答案 1 :(得分:0)
以一种常见的方式,我使用它,即路线中的参数。
[Route("api/getdevice/{pid}")]
[HttpGet]
public IActionResult GetHotelById(int PId)
{
var selectProducts = (from p in _db.product where p.ProductId == PId select p);
}
您可以直接在参数中检索类型,不解析。
并将其称为:
http://localhost:22343/api/getdevice/1
假设您的基本网址是“/".
此致