Javascript 将C#变量传递给jsrender模板中的helper函数

Javascript 将C#变量传递给jsrender模板中的helper函数,javascript,c#,razor,jsrender,Javascript,C#,Razor,Jsrender,我需要将一个模型值传递给jsrender模板中的函数。我尝试使用@访问C#变量,但它不起作用。下面是我的代码 <script type="text/x-jsrender" id="TemplateDate">> {{:~formatTemplateDate(Model.EstimatedCompletionDate)}} </script> 这就是我在页面中看到的错误 错误:n.toLocaleDateString不是函数。 提前谢谢 Dinesh.尝试使用@

我需要将一个模型值传递给jsrender模板中的函数。我尝试使用@访问C#变量,但它不起作用。下面是我的代码

<script type="text/x-jsrender" id="TemplateDate">>
 {{:~formatTemplateDate(Model.EstimatedCompletionDate)}} 
</script>
这就是我在页面中看到的错误


错误:n.toLocaleDateString不是函数。

提前谢谢


Dinesh.

尝试使用
@Html.Raw()
将值传递给函数:

>
{{:~formatTemplateDate('@Html.Raw(Model.EstimatedCompletionDate)))}

我找到了修复方法。无法将@Model.EstimatedCompletion datetime变量值传递给helper函数。需要将其转换为字符串,并且在helper函数中需要将其转换回Datetime()。下面是修改后的代码

<script type="text/x-jsrender" id="TemplateDate">>
 {{:~formatTemplateDate('@Model.EstimatedCompletionDate')}} 
</script>
谢谢


Dinesh.

参考下面的问题,这可能会对你有所帮助。我的问题是将模型值传递给helper函数。这个“jsrender”脚本在哪里运行?
@
只能在razor视图中工作,不能在普通html或js文件中工作。请定义“不工作”。您是否看到错误(如果是,请指定-同时检查javascript控制台)?你在呈现的html中看到了什么?@HansKesting是的,我在razor视图中使用jsrender。我已经用错误细节更新了问题。它给了你什么错误?页面源中显示的值是多少?错误:n.toLocaleDateString不是函数。这是我在我的页面中遇到的错误。
<script type="text/x-jsrender" id="TemplateDate">>
     {{:~formatTemplateDate('@Html.Raw(Model.EstimatedCompletionDate))')}} 
</script>
<script type="text/x-jsrender" id="TemplateDate">>
 {{:~formatTemplateDate('@Model.EstimatedCompletionDate')}} 
</script>
$.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;
        }
    }
});