ASP.NET Core 2.2传递给控制器的ID始终为0可能是由于路由配置或模型绑定问题引起的。以下是一些可能的解决方法:
确保路由配置正确。在Startup.cs文件中,检查RouteConfig方法中的路由配置,确保控制器和动作方法的路由模板正确。例如,如果控制器的路由模板为"api/[controller]",那么访问该控制器的URL应该是"api/yourcontrollername"。
确保参数名称和路由模板匹配。在控制器的动作方法中,确保参数名称与路由模板中的参数名称匹配。例如,如果路由模板为"{id}",那么控制器的动作方法参数名称应为"id"。
确保模型绑定正确。如果您正在使用模型绑定来传递参数,确保您的模型定义正确,并且在请求中正确地传递了参数。您可以使用FromRoute特性来指定参数从路由中绑定。例如,[FromRoute] int id。
以下是一个示例控制器,演示了如何正确传递ID参数:
[Route("api/[controller]")]
[ApiController]
public class SampleController : ControllerBase
{
[HttpGet("{id}")]
public IActionResult Get([FromRoute] int id)
{
// 在此处使用传递的ID参数
// ...
return Ok();
}
}
确保在路由中包含参数,例如"api/sample/1",其中1是您要传递的ID值。
希望这些解决方法能够帮助您解决问题!