具有多个参数的控制器动作
Controller action with multiple parameters
我想了解 我认为 是我的 ASP.NET 核心项目中的模型绑定问题。我有以下 'Index' 控制器操作:
[HttpGet]
public async Task<IActionResult> Index(SortFilterIndexOptions options) { ... }
SortFilterIndexOptions
是下面class定义的四个成员:
public class SortFilterIndexOptions
{
public int SelectedBirdId { get; set; }
public bool ShowAll { get; set; }
public bool ShowInTable { get; set; }
public int page { get; set; }
}
这些使用户能够过滤分页索引页。布尔成员链接到复选框控件。
如果 'ShowAll' bool 成员更改为 TRUE 然后尝试导航到不同的页面,我有一个错误。如下面的屏幕截图所示,url 的 'ShowAll' 参数部分包含两个布尔值 ('ShowAll=true, false'):
这当然会导致解析错误 ('FormatException: String was not recognized as a valid Boolean')。
这里发生了什么?它仅在 'ShowAll' 参数切换为 TRUE 时发生。是路由问题,因为它不遵循默认路由模式吗?还是ModelBinder的问题?我只是想了解发生了什么,以便我可以采取正确的行动。任何帮助将不胜感激...
更新
这现在是 dotnet/Core 存储库上的问题 #3246 ('ModelBinding error with boolean values') on the asp/Home GitHub repository (originally raised by me as issue #1711。
我想了解 我认为 是我的 ASP.NET 核心项目中的模型绑定问题。我有以下 'Index' 控制器操作:
[HttpGet]
public async Task<IActionResult> Index(SortFilterIndexOptions options) { ... }
SortFilterIndexOptions
是下面class定义的四个成员:
public class SortFilterIndexOptions
{
public int SelectedBirdId { get; set; }
public bool ShowAll { get; set; }
public bool ShowInTable { get; set; }
public int page { get; set; }
}
这些使用户能够过滤分页索引页。布尔成员链接到复选框控件。
如果 'ShowAll' bool 成员更改为 TRUE 然后尝试导航到不同的页面,我有一个错误。如下面的屏幕截图所示,url 的 'ShowAll' 参数部分包含两个布尔值 ('ShowAll=true, false'):
这当然会导致解析错误 ('FormatException: String was not recognized as a valid Boolean')。
这里发生了什么?它仅在 'ShowAll' 参数切换为 TRUE 时发生。是路由问题,因为它不遵循默认路由模式吗?还是ModelBinder的问题?我只是想了解发生了什么,以便我可以采取正确的行动。任何帮助将不胜感激...
更新
这现在是 dotnet/Core 存储库上的问题 #3246 ('ModelBinding error with boolean values') on the asp/Home GitHub repository (originally raised by me as issue #1711。