[英]Passing a date string from a C# controller to a Javascript function is altering the string
我遇到一个问题,就是我的控制器将ViewData传递给视图,然后由javascript函数使用了该视图。 ViewData是格式化为字符串的日期。 但是一旦传入Javascript,该字符串就会变成“ 0.021978021978021976”,而不是“ mm / dd / yy”格式。 是什么原因造成的? 这是生成该视图数据的控制器中的代码。
string dateString;
string cultureConfigKey = System.Configuration.ConfigurationManager.AppSettings["InstanceCulture"];
DateTime? lastEntryDate = null;
DataSet dSet = DataHelper.Measurements_GetLastMeasurement(userSession.UserIDNative);
foreach (DataRow dr in dSet.Tables[0].Rows)
{
lastEntryDate = (DateTime?)dr["When"];
}
// format date based on culture and convert it to string
if (cultureConfigKey == "en" )
{
ViewData["DateString"] = dateString = String.Format("{0:MM/dd/yy}", lastEntryDate);
}
在视图中,我按照以下方式引用ViewData
@
{
var dateString = ViewData["DateString"];
// calling @dateString in this point shows the string in proper format
}
// further down in the view I pass the dateString into the following function which generates some markup that is supposed to prinout out this date string with in it.
buildNotification(@dateString);
// the above function is built in an outside .js file here is its declaration
function buildNotification(dateString){
$('.stats-chartsView').before(
'<div class="noData-popup">' +
'<p class="noData-Img"></p>' +
'<p class="no-data alert">' + CHART_DATA_NOTIFICATION + '<span>'+ dateString +'</span></p>' +
'</div>'
);
}
Thanks!
可能是因为您没有在JS函数中使用引号传递此参数并将其视为字符串。
buildNotification(@dateString);
应该
buildNotification('@dateString');
您的JS函数看到的是2013年8月4日,并且很可能对这三个整数进行了长除法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.