public Task BindModelAsync(ModelBindingContext bindingContext) { var valueName = string.IsNullOrEmpty(bindingContext.ModelName) ? bindingContext.ModelMetadata.Name : bindingContext.ModelName; if (string.IsNullOrEmpty(valueName)) { return(Task.CompletedTask); } if (bindingContext.TryGetStringValue(valueName, out var value)) { try { bindingContext.ModelState.SetModelValue(value.ValueName, value.ValueProviderResult); bindingContext.Result = ModelBindingResult.Success(OnConvert(bindingContext, value.Value)); } catch (Exception ex) { bindingContext.Result = ModelBindingResult.Failed(); bindingContext.ModelState.TryAddModelException(value.ValueName, ex); } return(Task.CompletedTask); } return(Task.CompletedTask); }
public Task BindModelAsync(ModelBindingContext bindingContext) { var valueName = string.IsNullOrEmpty(bindingContext.ModelName) ? bindingContext.ModelMetadata.Name : bindingContext.ModelName; var limit = PagingParameters.DefaultLimit; var cursor = PagingCursor.Start; if (bindingContext.TryGetValue <int>("limit", out var limitResult)) { limit = limitResult.Value; } if (bindingContext.TryGetStringValue("cursor", out var cursorResult)) { cursor = new PagingCursor(cursorResult.Value); } var pagingParameters = new PagingParameters(cursor, limit).Coerce(); bindingContext.ModelState.MarkFieldValid(valueName); bindingContext.Result = ModelBindingResult.Success(pagingParameters); return(Task.CompletedTask); }