Class MaybeModelBinder<TValue, TPrimitive>
- Namespace
- Trellis.Asp.ModelBinding
- Assembly
- Trellis.Asp.dll
Model binder for Maybe<T> parameters where TValue
implements IScalarValue<TSelf, TPrimitive>.
Binds optional route, query, form, and header parameters to Maybe<T>.
public class MaybeModelBinder<TValue, TPrimitive> : ScalarValueModelBinderBase<Maybe<TValue>, TValue, TPrimitive>, IModelBinder where TValue : IScalarValue<TValue, TPrimitive> where TPrimitive : IComparable
Type Parameters
TValueThe scalar value type.
TPrimitiveThe underlying primitive type.
- Inheritance
-
ScalarValueModelBinderBase<Maybe<TValue>, TValue, TPrimitive>MaybeModelBinder<TValue, TPrimitive>
- Implements
- Inherited Members
- Extension Methods
Remarks
Unlike ScalarValueModelBinder<TValue, TPrimitive> which leaves absent parameters unbound (relying on ASP.NET Core's default handling), this binder explicitly produces:
- Parameter absent →
Maybe<TValue>.None— success, value not provided - Parameter present, valid →
Maybe.From(validatedValue)— success with value - Parameter present, invalid → validation error in ModelState
Methods
OnEmptyValue()
Returns the binding result when an empty string is provided.
Returns null to continue with normal conversion logic.
protected override ModelBindingResult? OnEmptyValue()
Returns
OnMissingValue()
Returns the binding result when no value is provided.
protected override ModelBindingResult OnMissingValue()
Returns
OnSuccess(TValue)
Wraps a successfully validated value object into the binding result.
protected override ModelBindingResult OnSuccess(TValue value)
Parameters
valueTValue