我需要将我的一个模型值传递给jsrender模板中的函数。我尝试使用@来访问C#变量,但它不起作用。以下是我的代码
<script type="text/x-jsrender" id="TemplateDate">>
{{:~formatTemplateDate(Model.EstimatedCompletionDate)}}
</script>
这是我的助手功能。
$.views.helpers({
formatTemplateDate: function (dateEstimated) {
"use strict";
if (dateEstimated !== null) {
if (!isSafari) {
var options = {
year: "numeric",
month: "short",
day: "numeric",
hour: "2-digit",
minute: "2-digit"
};
return dateEstimated.toLocaleTimeString("en-us", options);
} else {
return dateEstimated;
}
} else {
return null;
}
}
});
这是我在页面中出现的错误
Error: n.toLocaleDateString is not a function.
提前致谢。
的Dinesh。
答案 0 :(得分:1)
我找到了解决办法。我们无法将@ Model.EstimatedCompletion日期时间变量值传递给辅助函数。需要将其转换为字符串并在辅助函数中需要将其转换回Datetime()。下面是修改后的代码。
<script type="text/x-jsrender" id="TemplateDate">>
{{:~formatTemplateDate('@Model.EstimatedCompletionDate')}}
</script>
在我的帮助函数中,我将其转换回日期类型, var formatedDate = new Date(date);
$.views.helpers({
format: function (date) {
"use strict";
var formatedDate = new Date(date);
if (!isSafari) {
var options = {
year: "numeric",
month: "short",
day: "numeric"
};
return formatedDate.toLocaleDateString("en-us", options);
} else {
return formatedDate;
}
}
});
谢谢,
的Dinesh。
答案 1 :(得分:0)
尝试使用@Html.Raw()
:
<script type="text/x-jsrender" id="TemplateDate">>
{{:~formatTemplateDate('@Html.Raw(Model.EstimatedCompletionDate))')}}
</script>