0

我在评估剑道模板中的变量值时遇到问题。

在此代码中,变量controlID按预期计算。它返回"test"

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

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

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

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

任何帮助,将不胜感激。

4

2 回答 2

3

剑道模板基本上被翻译成 JavaScript 并在客户端(在浏览器中)执行。

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

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

呈现为

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

后者是一个有效的剑道模板。

但是,另一个代码块不会输出任何内容,因为您使用@{ }的是@. 这只是表示不输出任何 HTML 的可执行服务器端代码 (C#) 块。

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

于 2013-02-26T18:55:29.743 回答
0

我自己从未使用过剑道,但根据您展示的语法,我希望这可以工作:

<script id="treeview-template" type="text/kendo-ui-template">
    # var controlID= "test"; # 
    @{
       Html.CheckBox(controlID);
     }
</script>
于 2013-02-26T08:06:52.797 回答