I successfully made Enum binder and from what iv tested, everything works. But i want to have nullable enum parameter in my controller and when i change to nullable, my binder dont work.\[code\] public class EnumBinder<T> : IModelBinder { private object DefaultValue { get; set; } public EnumBinder(object defaultValue) { DefaultValue = http://stackoverflow.com/questions/14573924/defaultValue; } public object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext) { var result = bindingContext.ValueProvider.GetValue(bindingContext.ModelName); if(result == null || string.IsNullOrEmpty(result.AttemptedValue)) { return DefaultValue; } return GetEnumValue<T>(result.AttemptedValue); } public static object GetEnumValue<T>(string value) { var enums = Enum.GetValues(typeof (T)).Cast<T>().ToList(); foreach (var e in enums) { var _enum = Enum.Parse(typeof (T), e.ToString()); if (string.Equals(value, _enum.ToString(), StringComparison.InvariantCultureIgnoreCase)) { return _enum; } } return null; } }\[/code\]Works on\[code\] public virtual ActionResult ControllerName(Status status) { return View(); }\[/code\]but dont work on \[code\] public virtual ActionResult ControllerName(Status? status) { return View(); }\[/code\]Of course i have registered my binder on application start\[code\]ModelBinders.Binders.Add(typeof(CallStatus), new EnumBinder<CallStatus>(null));\[/code\]What i do wrong, why i cant return nullable enum in my controller?