diff --git a/src/Microsoft.AspNet.Mvc.Core/Rendering/Expressions/ExpressionMetadataProvider.cs b/src/Microsoft.AspNet.Mvc.Core/Rendering/Expressions/ExpressionMetadataProvider.cs index 7357f070a8..49d72c917f 100644 --- a/src/Microsoft.AspNet.Mvc.Core/Rendering/Expressions/ExpressionMetadataProvider.cs +++ b/src/Microsoft.AspNet.Mvc.Core/Rendering/Expressions/ExpressionMetadataProvider.cs @@ -69,10 +69,15 @@ namespace Microsoft.AspNet.Mvc.Rendering.Expressions return GetMetadataFromProvider(modelAccessor, typeof(TValue), propertyName, containerType, metadataProvider); } - public static ModelMetadata FromStringExpression([NotNull] string expression, + public static ModelMetadata FromStringExpression(string expression, [NotNull] ViewDataDictionary viewData, IModelMetadataProvider metadataProvider) { + if(string.IsNullOrEmpty(expression)) + { + return viewData.ModelMetadata; + } + if (expression.Length == 0) { // Empty string really means "model metadata for the current model" diff --git a/src/Microsoft.AspNet.Mvc.Core/Rendering/Html/HtmlHelper.cs b/src/Microsoft.AspNet.Mvc.Core/Rendering/Html/HtmlHelper.cs index 4702208de6..544b3f8a22 100644 --- a/src/Microsoft.AspNet.Mvc.Core/Rendering/Html/HtmlHelper.cs +++ b/src/Microsoft.AspNet.Mvc.Core/Rendering/Html/HtmlHelper.cs @@ -254,13 +254,8 @@ namespace Microsoft.AspNet.Mvc.Rendering /// public HtmlString DisplayName(string expression) { - var modelMetadata = string.IsNullOrEmpty(expression) ? - ViewData.ModelMetadata : - ExpressionMetadataProvider.FromStringExpression( - expression, - ViewData, - MetadataProvider); - return GenerateDisplayName(modelMetadata, expression); + var metadata = ExpressionMetadataProvider.FromStringExpression(expression, ViewData, MetadataProvider); + return GenerateDisplayName(metadata, expression); } @@ -299,14 +294,9 @@ namespace Microsoft.AspNet.Mvc.Rendering /// public HtmlString Label(string expression, string labelText, object htmlAttributes) { - var modelMetadata = string.IsNullOrEmpty(expression)? - ViewData.ModelMetadata : - ExpressionMetadataProvider.FromStringExpression( - expression, - ViewData, - MetadataProvider); + var metadata = ExpressionMetadataProvider.FromStringExpression(expression, ViewData, MetadataProvider); return GenerateLabel( - modelMetadata, + metadata, expression, labelText, htmlAttributes);