Table of Contents

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

TValue

The scalar value type.

TPrimitive

The 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

ModelBindingResult?

OnMissingValue()

Returns the binding result when no value is provided.

protected override ModelBindingResult OnMissingValue()

Returns

ModelBindingResult

OnSuccess(TValue)

Wraps a successfully validated value object into the binding result.

protected override ModelBindingResult OnSuccess(TValue value)

Parameters

value TValue

Returns

ModelBindingResult