在 asp.net mvc razor 应用程序中将 Datetime C# 类型转换为 Date javascript
Posted
技术标签:
【中文标题】在 asp.net mvc razor 应用程序中将 Datetime C# 类型转换为 Date javascript【英文标题】:Converting Datetime C# type to Date javascript in asp.net mvc razor application 【发布时间】:2013-07-14 11:16:34 【问题描述】:我在 javascript 中转换日期时遇到问题。我试试这个 sn-p:
$(document).ready(function ()
var date = new Date();
var d = date.getDate();
var m = date.getMonth();
var y = date.getFullYear();
$('#calendar').fullCalendar(
theme: true,
header: left: 'prev,next today',center: 'title',right: 'month,agendaWeek,agendaDay',
editable: true,
events: [
title: 'Birthday Party',
start: new Date(y, m, d+1, 19, 0),
end: new Date(y, m, d+1, 22, 30),
allDay: false
]
);
);
它可以工作,但是如果我将其更改为:
$(document).ready(function ()
var date = new Date();
var d = date.getDate();
var m = date.getMonth();
var y = date.getFullYear();
$('#calendar').fullCalendar(
theme: true,
header: left: 'prev,next today',center: 'title',right: 'month,agendaWeek,agendaDay',
editable: true,
events: [
@foreach (var m in Model.Get_List_Tache())
@: title: "Tache_description", start: new Date(@m.Begin_date.Year +"," + @m.Begin_date.Month +","+ @m.Begin_date.Day ) , end: new Date( @m.End_date.Year +"," +@m.End_date.Month +"," + @m.End_date.Day )
]
);
);
日期格式存在语法错误。
那么这个错误的原因是什么?我该如何解决?
【问题讨论】:
尝试用,
替换那些","
我没有在那里进行字符串连接。
Accessing C# variable from Javascript in asp.net mvc application 的可能重复项
你为什么使用foreach?如果您尝试设置这些属性两次,我认为它不会喜欢它。
做一个“查看源代码”。我怀疑你的循环输出了无效的 JavaScript。
【参考方案1】:
你可以使用这个解决方案
start: new Date(@m.Begin_date.ToString("yyyy,MM-1,dd"))
【讨论】:
var date = new Date(@DateTime.ToString("yyyy,MM-1,dd,HH,mm,ss"))【参考方案2】:我仍在 FosterZ,但你也应该摆脱 +
。
所以不是
start: new Date(@m.Begin_date.Year +"," + @m.Begin_date.Month +","+ @m.Begin_date.Day ) ,
试试
start: new Date(@m.Begin_date.Year , @m.Begin_date.Month , @m.Begin_date.Day ) ,
如果这仍然不起作用,请查看页面的源代码,并查看那里的 Javascript 中添加了什么。它很可能不是你所期望的。如果您无法弄清楚,请将其添加到您的问题中,我们可以查看一下。
【讨论】:
几乎!请记住将月份设为 -1,因为 JavaScript 中的月份从 0 开始,而不是像 C# DateTime 那样从 1 开始【参考方案3】:你可以使用 c# 的 DateTime.ToLongDateString() 并将它传递给 javascript 中 Date 对象的构造函数,只要你希望日期保持不变。
start: new Date(@m.Begin_date.ToLongDateString());
【讨论】:
以上是关于在 asp.net mvc razor 应用程序中将 Datetime C# 类型转换为 Date javascript的主要内容,如果未能解决你的问题,请参考以下文章
将 ASP.NET Razor 网站(例如 MiniBlog)集成为 ASP.NET MVC Web 应用程序的模块?
在 ASP.NET MVC 5 中从数据库加载 Razor 视图
htmlhelper 不包含 ASP.NET MVC RAZOR 中的剑道定义