[Fixes #4633] Datetime? and DateTimeOffset? values on InputTagHelper are not rendered correctly.

This commit is contained in:
jacalvar 2016-05-20 01:46:03 -07:00
parent ee2a591d2c
commit 230a13d0e1
2 changed files with 11 additions and 1 deletions

View File

@ -356,7 +356,7 @@ namespace Microsoft.AspNetCore.Mvc.TagHelpers
else if (_rfc3339Formats.TryGetValue(inputType, out rfc3339Format) &&
ViewContext.Html5DateRenderingMode == Html5DateRenderingMode.Rfc3339 &&
!modelExplorer.Metadata.HasNonDefaultEditFormat &&
(typeof(DateTime) == modelExplorer.ModelType || typeof(DateTimeOffset) == modelExplorer.ModelType))
(typeof(DateTime) == modelExplorer.Metadata.UnderlyingOrModelType || typeof(DateTimeOffset) == modelExplorer.Metadata.UnderlyingOrModelType))
{
// Rfc3339 mode _may_ override EditFormatString in a limited number of cases e.g. EditFormatString
// must be a default format (i.e. came from a built-in [DataType] attribute).

View File

@ -854,6 +854,9 @@ namespace Microsoft.AspNetCore.Mvc.TagHelpers
[InlineData("DateTimeLocal", Html5DateRenderingMode.Rfc3339, "{0:yyyy-MM-ddTHH:mm:ss.fff}", "datetime-local")]
[InlineData("Time", Html5DateRenderingMode.CurrentCulture, "{0:t}", "time")] // Format from [DataType].
[InlineData("Time", Html5DateRenderingMode.Rfc3339, "{0:HH:mm:ss.fff}", "time")]
[InlineData("NullableDate", Html5DateRenderingMode.Rfc3339, "{0:yyyy-MM-dd}", "date")]
[InlineData("NullableDateTime", Html5DateRenderingMode.Rfc3339, "{0:yyyy-MM-ddTHH:mm:ss.fffK}", "datetime")]
[InlineData("NullableDateTimeOffset", Html5DateRenderingMode.Rfc3339, "{0:yyyy-MM-ddTHH:mm:ss.fffK}", "datetime")]
public async Task ProcessAsync_CallsGenerateTextBox_AddsExpectedAttributesForRfc3339(
string propertyName,
Html5DateRenderingMode dateRenderingMode,
@ -996,6 +999,13 @@ namespace Microsoft.AspNetCore.Mvc.TagHelpers
public DateTimeOffset DateTimeOffset { get; set; }
[DataType(DataType.Date)]
public DateTime? NullableDate { get; set; }
public DateTime? NullableDateTime { get; set; }
public DateTimeOffset? NullableDateTimeOffset { get; set; }
[DataType("datetime-local")]
public DateTime DateTimeLocal { get; set; }