ASP .Net Core 空数组查询参数绑定异常
创始人
2024-11-11 13:31:13
0

当使用ASP .Net Core进行查询参数绑定时,如果有一个空数组作为查询参数,可能会遇到异常。这是因为ASP .Net Core默认情况下会将空数组解析为null,而不是一个空的数组。

要解决这个问题,可以使用以下方法之一:

  1. 使用FromQueryAttribute指定参数绑定方式:
[HttpGet]
public IActionResult MyAction([FromQuery(Name = "myArray[]")] IList myArray)
{
    // your code here
}

在这个示例中,我们使用FromQueryAttribute来指定参数绑定方式,并使用Name属性来指定查询参数的名称。在这种情况下,ASP .Net Core将会正确地将空数组绑定到myArray参数。

  1. 使用自定义ModelBinder: 首先,创建一个继承自IModelBinder接口的自定义ModelBinder类,用于处理空数组的绑定逻辑:
public class EmptyArrayModelBinder : IModelBinder
{
    public Task BindModelAsync(ModelBindingContext bindingContext)
    {
        var modelName = bindingContext.ModelName;
        var valueProviderResult = bindingContext.ValueProvider.GetValue(modelName);
        if (valueProviderResult != ValueProviderResult.None)
        {
            bindingContext.ModelState.SetModelValue(modelName, valueProviderResult);
            var value = valueProviderResult.FirstValue;
            if (string.IsNullOrEmpty(value))
            {
                bindingContext.Result = ModelBindingResult.Success(new List());
                return Task.CompletedTask;
            }
        }
        return Task.CompletedTask;
    }
}

然后,在控制器的参数上使用自定义ModelBinder:

[HttpGet]
public IActionResult MyAction([ModelBinder(BinderType = typeof(EmptyArrayModelBinder))] IList myArray)
{
    // your code here
}

在这个示例中,我们使用ModelBinderAttribute来指定使用自定义的ModelBinder进行参数绑定。当查询参数为空时,自定义ModelBinder将会将其绑定为一个空的字符串列表。

通过使用上述方法之一,您可以成功地绑定空数组作为查询参数。

相关内容

热门资讯

透视教学!佛手十三道辅助器&q... 透视教学!佛手十三道辅助器"揭幕辅助攻略"确实是真的有挂(哔哩哔哩)佛手十三道辅助器是不是有人用挂微...
这一现象值得深思!决战卡五星辅... 这一现象值得深思!决战卡五星辅助修改器"解密辅助方法"一贯存在有挂(哔哩哔哩)1.决战卡五星辅助修改...
据监测!哈局八张辅助"... 据监测!哈局八张辅助"普及辅助器"总是是真的有挂(哔哩哔哩)1、操作简单,无需哈局八张辅助手机版透视...
透视规律!闲逸官方辅助软件叫什... 透视规律!闲逸官方辅助软件叫什么名字"详细辅助攻略"原来真的有挂(哔哩哔哩)1、每一步都需要思考,不...
2026版复盘!中至余干万能辅... 2026版复盘!中至余干万能辅助器"专业辅助教程"真是是有挂(哔哩哔哩)1、中至余干万能辅助器有没有...
黑科技攻略!逍遥辅助器怎么用&... 黑科技攻略!逍遥辅助器怎么用"解谜辅助攻略"总是是真的有挂(哔哩哔哩)一、逍遥辅助器怎么用可以开透视...
无独有偶!新九五辅助"... 无独有偶!新九五辅助"了解辅助器"总是真的是有挂(哔哩哔哩)1、完成新九五辅助有辅助插件,帮助玩家取...
透视科技!情怀游戏字牌辅助&q... 透视科技!情怀游戏字牌辅助"曝光辅助脚本"都是确实有挂(哔哩哔哩)1、点击下载安装,情怀游戏字牌辅助...
透视好友!微乐脚本辅助器&qu... 透视好友!微乐脚本辅助器"专业辅助技巧"好像真的是有挂(哔哩哔哩)1.微乐脚本辅助器 选牌创建新账号...
据权威媒体报道!友玩广西修改器... 据权威媒体报道!友玩广西修改器"辅助辅助脚本"竟然真的是有挂(哔哩哔哩)1、下载好友玩广西修改器透视...