diff --git a/src/Orchard/ContentManagement/FieldStorage/SimpleFieldStorage.cs b/src/Orchard/ContentManagement/FieldStorage/SimpleFieldStorage.cs index f9898ef38..b8aa841e2 100644 --- a/src/Orchard/ContentManagement/FieldStorage/SimpleFieldStorage.cs +++ b/src/Orchard/ContentManagement/FieldStorage/SimpleFieldStorage.cs @@ -13,9 +13,18 @@ namespace Orchard.ContentManagement.FieldStorage { public T Get(string name) { var value = Getter(name, typeof(T)); - return string.IsNullOrEmpty(value) - ? default(T) - : (T)Convert.ChangeType(value, typeof(T), CultureInfo.InvariantCulture); + if(String.IsNullOrEmpty(value)) { + return default(T); + } + + var t = typeof (T); + + // the T is nullable, convert using underlying type + if(t.GetGenericTypeDefinition() == typeof(Nullable<>)) { + t = Nullable.GetUnderlyingType(t); + } + + return (T)Convert.ChangeType(value, t, CultureInfo.InvariantCulture); } public void Set(string name, T value) {