自定义的ModelBinding
该modelbinding主要用于将route中的相对应数据转化为所binding的字段属性数组。
/// <summary>
/// 自定义model binding,继承ImodelBinder
/// </summary>
public class ArrayModelBinder : IModelBinder
{
/// <summary>
/// 必须实现该接口
/// </summary>
/// <param name="bindingContext">使用Modelbinding的属性</param>
/// <returns></returns>
public Task BindModelAsync(ModelBindingContext bindingContext)
{
//如果使用该modelbinding的不是enumerable,提示失败
if (!bindingContext.ModelMetadata.IsEnumerableType)
{
bindingContext.Result = ModelBindingResult.Failed();
return Task.CompletedTask;
}
//从context中取出需要的数据并转化为字符串
var value = bindingContext.ValueProvider.GetValue(bindingContext.ModelName).ToString();
//字符串为空返回成功,但信息为