public void CastOrDefault_CorrectType_ReturnsInput() { // Act int retVal = ModelBinderUtil.CastOrDefault <int>(42); // Assert Assert.Equal(42, retVal); }
public void CastOrDefault_IncorrectType_ReturnsDefaultTModel() { // Act DateTime retVal = ModelBinderUtil.CastOrDefault <DateTime>(42); // Assert Assert.Equal(default(DateTime), retVal); }
public static bool TryBindStrongModel <TModel>(ModelBindingExecutionContext modelBindingExecutionContext, ModelBindingContext parentBindingContext, string propertyName, ModelMetadataProvider metadataProvider, out TModel model) { ModelBindingContext propertyBindingContext = new ModelBindingContext(parentBindingContext) { ModelMetadata = metadataProvider.GetMetadataForType(null, typeof(TModel)), ModelName = ModelBinderUtil.CreatePropertyModelName(parentBindingContext.ModelName, propertyName) }; IModelBinder binder = parentBindingContext.ModelBinderProviders.GetBinder(modelBindingExecutionContext, propertyBindingContext); if (binder != null) { if (binder.BindModel(modelBindingExecutionContext, propertyBindingContext)) { object untypedModel = propertyBindingContext.Model; model = ModelBinderUtil.CastOrDefault <TModel>(untypedModel); parentBindingContext.ValidationNode.ChildNodes.Add(propertyBindingContext.ValidationNode); return(true); } } model = default(TModel); return(false); }