ValueOrDefault returns null if null or string.Empty.