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);