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将会将其绑定为一个空的字符串列表。

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

相关内容

热门资讯

透视工具!wepoker分析(... 透视工具!wepoker分析(透视)胡乐辅助脚本(一贯是有辅助工具)-哔哩哔哩透视工具!wepoke...
来临!we-poker辅助(透... 来临!we-poker辅助(透视)玄龙大厅怎么开辅助(真是是真的辅助软件)-哔哩哔哩所有人都在同一条...
透视最新!wpk真吗(透视)欢... 透视最新!wpk真吗(透视)欢乐对决脚本辅助器ios(总是真的有辅助插件)-哔哩哔哩1)欢乐对决脚本...
透视好友!wepoker破解是... 透视好友!wepoker破解是真的还是假的(透视)桂林字牌黑科技(确实是有辅助平台)-哔哩哔哩桂林字...
透视讲解!德普之星私人局辅助免... 透视讲解!德普之星私人局辅助免费(透视)海贝之城辅助器(都是有辅助神器)-哔哩哔哩德普之星私人局辅助...
透视模拟器!wepoker看底... 透视模拟器!wepoker看底牌(透视)天天卡五星辅助官网入口(果然存在有辅助下载)-哔哩哔哩暗藏猫...
此事备受玩家关注!hhpkoe... 此事备受玩家关注!hhpkoer辅助器视频(透视)丽水茶苑辅助有吗(竟然真的有辅助安装)-哔哩哔哩丽...
近年来!hhpoker透视工具... 近年来!hhpoker透视工具(透视)广东麻将辅助工具(竟然有辅助下载)-哔哩哔哩1、操作简单,无需...
迎来新发展!佛手大菠萝辅助(透... 您好,微信小程序雀神麻将好运来这款游戏可以开挂的,确实是有挂的,需要了解加去威信【136704302...
刚刚!pokemmo手机版脚本... 刚刚!pokemmo手机版脚本免费(透视)开心十三张哈局辅助(总是是真的辅助插件)-哔哩哔哩一、开心...