Javascript 无法使用handlebar.js模板显示日期时间
各位。在我的ASP.NET MVC项目中,我有一个视图,其中包含使用handlebar.js模板显示的对象列表。每个对象都有一个datetime属性,我希望在某处显示或传递该属性(例如,另一个视图)。问题是,我的模板显示的日期时间数据如下所示:Javascript 无法使用handlebar.js模板显示日期时间,javascript,c#,asp.net-mvc,datetime,handlebars.js,Javascript,C#,Asp.net Mvc,Datetime,Handlebars.js,各位。在我的ASP.NET MVC项目中,我有一个视图,其中包含使用handlebar.js模板显示的对象列表。每个对象都有一个datetime属性,我希望在某处显示或传递该属性(例如,另一个视图)。问题是,我的模板显示的日期时间数据如下所示: /Date(957819600000)/ 我的模型属性: [Required] [DataType(DataType.Date)] [DisplayFormat(DataFormatString = "{0:dd'/'MM'/'yyyy
/Date(957819600000)/
我的模型属性:
[Required]
[DataType(DataType.Date)]
[DisplayFormat(DataFormatString = "{0:dd'/'MM'/'yyyy}", ApplyFormatInEditMode = true)]
public DateTime CarManufactureDate { get; set; }
@model IEnumerable<Model.DTO.CarDTO>
<script id="carListRow" type="text/x-handlebars-template">
{{#each cars}}
<tr>
<td>
{{CarName}}
</td>
<td>
{{CarNickName}}
</td>
<td>
{{CarNumber}}
</td>
<td>
{{CarManufactureDate}}
</td>
<td>
<a class="btn btn-danger" href="#" data-cars-id="{{Id}}" data-cars-name="{{CarName}}" data-cars-date="{{CarManufactureDate}}" role="button" onclick="carController.deleteCar(this)">@Resources.Resource.deleteString</a>
</td>
</tr>
{{/each}}
这是我的模板:
[Required]
[DataType(DataType.Date)]
[DisplayFormat(DataFormatString = "{0:dd'/'MM'/'yyyy}", ApplyFormatInEditMode = true)]
public DateTime CarManufactureDate { get; set; }
@model IEnumerable<Model.DTO.CarDTO>
<script id="carListRow" type="text/x-handlebars-template">
{{#each cars}}
<tr>
<td>
{{CarName}}
</td>
<td>
{{CarNickName}}
</td>
<td>
{{CarNumber}}
</td>
<td>
{{CarManufactureDate}}
</td>
<td>
<a class="btn btn-danger" href="#" data-cars-id="{{Id}}" data-cars-name="{{CarName}}" data-cars-date="{{CarManufactureDate}}" role="button" onclick="carController.deleteCar(this)">@Resources.Resource.deleteString</a>
</td>
</tr>
{{/each}}
@model IEnumerable
{{{每辆车}
{{CarName}}
{{CarNickName}}
{{CarNumber}}
{{CarManufactureDate}
{{/每个}}
为什么会发生这种情况,我能做些什么 您可以使用。将DateTime属性装饰为
[Required]
[DataType(DataType.Date)]
[JsonConverter(typeof(CustomDateTimeConverter))]
[DisplayFormat(DataFormatString = "{0:dd'/'MM'/'yyyy}", ApplyFormatInEditMode = true)]
public DateTime CarManufactureDate { get; set; }
创建一个类CustomDateTimeConverter
class CustomDateTimeConverter : IsoDateTimeConverter
{
public CustomDateTimeConverter()
{
base.DateTimeFormat = "dd/MM/yyyy";
}
}
在你看来,你可以使用
var encodedCarData = @Html.Raw(Newtonsoft.Json.JsonConvert.SerializeObject(Model.ToList()));
你是如何从CarDTO ViewModel构建javascript对象的?@Dandy By js object你是指我用于模板的对象吗?我在用这个
var encodedCarData=@Html.Raw(Json.Encode(Model.ToList())代码>嗯,它正在工作。有点添加或更改日期后,这种混乱再次出现。我认为这可能是datetimepicker的问题。我使用的是eonasdan引导datetimepicker,它使用'DD.MM.YYYY'格式。当我申请新的日期时,一切都很正常,除了我试图看到结果的时候(它再次以令人毛骨悚然的格式出现,但在重新加载页面后,一切都很正常,但这仍然是一个问题)