在ASP.NET Core 2.2和3.0中,使用相同模型的FromRoute和FromQuery在结果上有所不同的问题可以通过以下解决方法来处理:
例如,在控制器的操作方法中:
[HttpGet("{id}")]
public IActionResult GetItem([FromRoute] int id, [FromQuery(Name = "name")] string itemName)
{
// ...
}
在上面的代码中,[FromQuery(Name = "name")]指定了查询字符串参数的名称为"name",这样可以确保模型绑定器从查询字符串中获取正确的参数。
例如,在控制器的操作方法中:
[HttpGet("{id}")]
public IActionResult GetItem(int id, string name)
{
// ...
}
在上面的代码中,id参数从路由参数中绑定,name参数从查询字符串参数中绑定,ASP.NET Core 3.0会自动根据参数名称进行模型绑定。
综上所述,根据使用的ASP.NET Core版本,你可以选择适当的解决方法来处理FromRoute和FromQuery在结果上的差异。