0

Approved 是我模型中的 DateTime。在我的 Razor 视图中,approvedDate 是一个 Datetime 变量。脚本块位于同一个 Razor 视图中。

我想测试 Approved 以查看它是否在approvedDate 之前,如果是,则在x-kendo-template detail-template 内将其替换为空字符串“”。

@{ var approvedDate = DateTime.Parse("01-01-2016"); }

<script id="detail-template" type="text/x-kendo-template">

 <ul>

    < li>#if (# #= Approved # # < @approvedDate) {# ""#}else{# #= kendo.toString(Approved, "MM-dd-yyyy") # #}#</li>

 </ul>

</script>

上述语法会导致 detail-template 脚本失败。

使这个 if 语句起作用的语法是什么?

4

1 回答 1

0

有两个问题,一个是语法问题,另一个是在条件中使用 Razor DateTime 变量。

我同时使用了 if else 和三元语法,并将 Razor 变量转换为 javascript Date。

@{ var approvedDate = "01-01-2015"; }

<script id="tab_template" type="text/kendo-tmpl">
 # var approvedDate = new Date(Date.parse(@approvedDate)); #

...

<li><label>Test1: </label>#if (Applied < approvedDate ) {# #: kendo.toString(Applied, "MM-dd-yyyy") # #}else{# Fail #}#</li>
 <li><label>Test2: </label>#if (Applied > approvedDate ) {# #: kendo.toString(Applied, "MM-dd-yyyy") # #}else{# Fail #}#</li>
 <li><label>Test3:</label>#= Applied < approvedDate ? kendo.toString(Applied, "MM-dd-yyyy") : "Fail" #</li>
 <li><label>Test4:</label>#= Applied > approvedDate ? kendo.toString(Applied, "MM-dd-yyyy") : "Fail" #</li>

...

</script>

显示如下:

测试1:失败

测试2:2015 年 8 月 22 日

测试3:失败

测试 4:2015 年 8 月 22 日

我从 OP 中对其进行了一些更改。如果条件通过,则现在显示已应用,如果条件失败,则显示“失败”。现在这两个问题已经解决,代码可以很容易地修改为原始行为。

于 2016-01-22T05:18:15.733 回答