2017-10-18 25 views
1

我的模型具有财产TimeScheduleOnUtc这样日期时间空当提交表单.NET MVC

[DisplayFormat(DataFormatString = "{0:MM/dd/yyyy HH:mm}")] 
public DateTime? TimeScheduleOnUtc { get; set; } 

我的形式有

<input type="text" class="form-control datetimepicker" placeholder="MM/dd/yyyy HH:mm" name="TimeScheduleOnUtc" /> 

但是,当我提交表单我总是在TimeScheduleOnUtc空值。它发生在我的电脑上,我的所有成员似乎都很好。我无法找到原因,我怎么修复。我认为这可能是一个错误取决于我的电脑上的日期时间配置。

+0

Tl; Dr MVC不理解你的日期格式 – Liam

+0

但是你知道我的所有成员的计算机为什么以这种格式工作正常 –

+0

文化 – Liam

回答

1

检查您的应用程序文化是否支持此日期格式。我在日期格式完全相同时遇到了一些问题。解决方案是在我的控制器的constructor中更改当前的文化。

试试这个:

Thread.CurrentThread.CurrentCulture = new CultureInfo("en-GB"); 

附加:检查所有受支持的日期时间格式,你可以code直接使用的代码从我的要点在view

@{ 
    var dateInfo = System.Threading.Thread.CurrentThread.CurrentCulture.DateTimeFormat; 
} 
    @foreach (var item in dateInfo.GetAllDateTimePatterns()) 
    { 

     <div>@item</div> 
    } 

我相信有一个更好的方法来解决问题,但是现在可以将其用作解决方法。

0

谢谢你的所有答案。最后,我找到了解决办法是,我需要从

 $('.datetimepicker') 
      .datetimepicker({ 
       format: 'mm/dd/yyyy hh:ii', 
       autoclose: true, 
       startDate: new Date() 
      }); 

在我的JavaScript来改变我的DateTimePicker config要

 $('.datetimepicker') 
     .datetimepicker({ 
      format: 'MM/dd/yyyy hh:ii', 
      autoclose: true, 
      startDate: new Date() 
     }); 

所以我换毫米MM。它可以在我的计算机上正常工作,但也许在您的计算机上,它不会。所以要小心使用它。我希望这对您未来可能有所帮助。

+0

这是一个正确的分钟'ii'格式吗?我从来没有在'JavaScript'或'ASP .NET MVC'中看到过 – mihkov