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

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

相关内容

热门资讯

玩家必看外挂脚本!奥云集安麻将... 玩家必看外挂脚本!奥云集安麻将多功能外挂脚本,奥云集安麻将确实有外挂脚本1、起透看视 奥云集安麻将辅...
查到实测辅助器app!天听之旅... 查到实测辅助器app!天听之旅多功能辅助器app,天听之旅原来存在有辅助器app1、上手简单,内置详...
技术分享外挂技巧!响水麻将多功... 技术分享外挂技巧!响水麻将多功能外挂技巧,响水麻将总是是真的有外挂技巧1、每一步都需要思考,不同水平...
我来教教大家外挂脚本!优优龙岩... 我来教教大家外挂脚本!优优龙岩麻将多功能外挂脚本,优优龙岩麻将原来真的有外挂脚本一、优优龙岩麻将游戏...
玩家交流辅助app!胡乐竞技多... 玩家交流辅助app!胡乐竞技多功能辅助app,胡乐竞技一直有辅助app1、玩家交流辅助app!胡乐竞...
我来教大家外挂插件!乐暴延边麻... 我来教大家外挂插件!乐暴延边麻将多功能外挂插件,乐暴延边麻将切实是真的有外挂插件1、全新机制【乐暴延...
揭秘几款透视器技巧!彩虹沁阳麻... 揭秘几款透视器技巧!彩虹沁阳麻将多功能透视器技巧,彩虹沁阳麻将都是存在有透视器技巧彩虹沁阳麻将破解侠...
2024教程开挂脚本!KELE... 2024教程开挂脚本!KELE多功能开挂脚本,KELE本来真的是有开挂脚本1、KELE辅助器安装包、...
一分钟秒懂透视器插件!大唐麻将... 一分钟秒懂透视器插件!大唐麻将游戏多功能透视器插件,大唐麻将游戏果然是有透视器插件小薇(辅助器软件下...
揭秘一下辅助器攻略!家乡鹤游多... 揭秘一下辅助器攻略!家乡鹤游多功能辅助器攻略,家乡鹤游好像是真的有辅助器攻略1、任何家乡鹤游透视是真...