Vinculação de modelo de moeda asp.net MVC 1.0 e 2.0

Gostaria de criar uma funcionalidade de ligação de modelo para que um usuário possa digitar ',' '.' etc para valores de moeda que se vinculam a um valor duplo do meu ViewModel.

Consegui fazer isso no MVC 1.0 criando um fichário de modelo personalizado; no entanto, desde a atualização para o MVC 2.0, essa funcionalidade não funciona mais.

Alguém tem alguma idéia ou solução melhor para executar essa funcionalidade? Uma solução melhor seria usar alguma anotação de dados ou atributo personalizado.

public class MyViewModel
{
    public double MyCurrencyValue { get; set; }
}

Uma solução preferida seria algo como isto ...

public class MyViewModel
{
    [CurrencyAttribute]
    public double MyCurrencyValue { get; set; }
}

Abaixo está minha solução para ligação de modelo no MVC 1.0.

public class MyCustomModelBinder : DefaultModelBinder
{
    public override object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext)
    {
        object result = null;

        ValueProviderResult valueResult;
        bindingContext.ValueProvider.TryGetValue(bindingContext.ModelName, out valueResult);
        bindingContext.ModelState.SetModelValue(bindingContext.ModelName, valueResult);

        if (bindingContext.ModelType == typeof(double))
        {
            string modelName = bindingContext.ModelName;
            string attemptedValue = bindingContext.ValueProvider[modelName].AttemptedValue;

            string wantedSeperator = NumberFormatInfo.CurrentInfo.NumberDecimalSeparator;
            string alternateSeperator = (wantedSeperator == "," ? "." : ",");

            try
            {
                result = double.Parse(attemptedValue, NumberStyles.Any);
            }
            catch (FormatException e)
            {
                bindingContext.ModelState.AddModelError(modelName, e);
            }
        }
        else
        {
            result = base.BindModel(controllerContext, bindingContext);
        }

        return result;
    }
}

questionAnswers(1)

yourAnswerToTheQuestion