Extension du classeur ASP.NET MVC 2 pour qu’il fonctionne pour 0, 1 booléens

J’ai remarqué avec ASP.NET MVC 2 que le classeur de modèle ne reconnaîtra pas “1” et “0” comme étant respectivement true et false . Est-il possible d’étendre le classeur de modèle globalement pour les reconnaître et les transformer en valeurs booléennes appropriées?

Merci!

Quelque chose parmi les lignes devrait faire le travail:

 public class BBinder : DefaultModelBinder { public override object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext) { var value = bindingContext.ValueProvider.GetValue(bindingContext.ModelName); if (value != null) { if (value.AttemptedValue == "1") { return true; } else if (value.AttemptedValue == "0") { return false; } } return base.BindModel(controllerContext, bindingContext); } } 

et vous inscrire dans Application_Start :

 ModelBinders.Binders.Add(typeof(bool), new BBinder()); 

Découvrez ce lien . Cela fonctionne apparemment dans MVC2.

Vous pouvez faire quelque chose comme (non testé):

 public class BooleanModelBinder : IModelBinder { public object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext) { ValueProviderResult value = bindingContext.ValueProvider.GetValue(bindingContext.ModelName); // do checks here to parse boolean return (bool)value.AttemptedValue; } } 

Ensuite, dans le fichier global.asax au démarrage de l’application, ajoutez:

 ModelBinders.Binders.Add(typeof(bool), new BooleanModelBinder());