Kendo Template:在评估C#代码块中的变量值时出错

时间:2013-02-26 08:04:24

标签: c# templates variables razor kendo-ui

我在评估Kendo Template中的变量值时遇到了问题。

在此代码中,变量 controlID 已按预期进行评估。它返回" test"

<script id="treeview-template" type="text/kendo-ui-template">
    # var controlID= "test"; # 
    @Html.CheckBox("#=controlID#")
</script>

但是当我在C#代码块中使用它时,变量被评估为 &#34;#= controlID#&#34;

<script id="treeview-template" type="text/kendo-ui-template">
    # var controlID= "test"; # 
    @{
       Html.CheckBox("#=controlID#");
     }
</script>

如何在Kendo Template中的C#代码块中获取正确的变量值?

任何帮助都将不胜感激。

2 个答案:

答案 0 :(得分:3)

Kendo Template基本上已翻译为JavaScript,并在客户端(在浏览器中)执行。

您的第一个配置有效,因为以下

@Html.CheckBox('#=controlID#')

呈现为

<input type="checkbox" name="#= controlID #" id="#= controlID #" />

后者是有效的剑道模板。

但是其他代码块不会输出任何内容,因为您使用的是@{ }而不是@。这仅表示可执行服务器端代码(C#)的块,它不输出任何HTML。

Phil Haack有一篇很好的博客文章解释了Razor语法:http://haacked.com/archive/2011/01/06/razor-syntax-quick-reference.aspx

答案 1 :(得分:0)

我自己从未使用过剑道,但根据你所显示的语法,我期待这个工作:

<script id="treeview-template" type="text/kendo-ui-template">
    # var controlID= "test"; # 
    @{
       Html.CheckBox(controlID);
     }
</script>