Typeconverter no funciona en asp.net core

yo tengoAmount almacenado en la base de datos comodecimal. Quiero mostrar ese valor en la interfaz de usuario con mil separadores. puedo agregar[DisplayFormat(DataFormatString = "{0:N2}", ApplyFormatInEditMode = true)] atributo en la propiedad de cantidad y que mostraría el número con miles de separadores, sin embargo, cuando publico el valor de nuevo en el servidor, el enlace del modelo MVC no funcionaría debido a las comas.

He creado un convertidor de tipo personalizado que convierte dedecimal astring y entoncesstring adecimal

public class NumberConverter : TypeConverter
{
    public override bool CanConvertFrom(
        ITypeDescriptorContext context,
        Type sourceType)
    {
        if (sourceType == typeof(decimal))
        {
            return true;
        }
        return base.CanConvertFrom(context, sourceType);
    }
    public override object ConvertFrom(ITypeDescriptorContext context,
        CultureInfo culture, object value)
    {
        if (value is decimal)
        {
            return string.Format("{0:N2}", value);
        }
        return base.ConvertFrom(context, culture, value);
    }
    public override bool CanConvertTo(ITypeDescriptorContext context,
        Type destinationType)
    {
        if (destinationType == typeof(decimal))
        {
            return true;
        }
        return base.CanConvertTo(context, destinationType);
    }
    public override object ConvertTo(ITypeDescriptorContext context,
        CultureInfo culture, object value, Type destinationType)
    {
        if (destinationType == typeof(decimal) && value is string)
        {
            return Scrub(value.ToString());
        }
        return base.ConvertTo(context, culture, value, destinationType);
    }

    private decimal Scrub(string modelValue)
    {
        NumberStyles _currencyStyle = NumberStyles.Currency;
        CultureInfo _culture = new CultureInfo("en-US");

        var modelDecimal = 0M;
        decimal.TryParse(
           modelValue,
           _currencyStyle,
           _culture,
           out modelDecimal
       );

        return modelDecimal;
    }
}

y luego lo apliqué en una de las propiedades del modelo. Tenga en cuenta que el modelo puede tener otras propiedades decimales que pueden no requerir esta conversión.

public class MyModel
{

    [TypeConverter(typeof(NumberConverter))]
    [Display(Name = "Enter Amount")]
    public decimal Amount { get; set;}

    public string Name { get; set; }
}

Index.cshtml

<form asp-action="submit" asp-controller="home">
    @Html.EditorFor(m => m.Amount)
    <button type="submit" class="btn btn-primary">Save</button>
</form>

Sin embargo, el código del convertidor nunca se activa. Cuando pongo un punto de quiebre enNumberConverter ninguno de los puntos de quiebre golpeó. ¿Necesito registrar el convertidor de tipos en algún lugar? Estoy usando asp.net core.

Respuestas a la pregunta(1)

Su respuesta a la pregunta