c# - Kendo Treeview远程绑定(bind)模板内的c#变量

标签 c# templates razor kendo-ui kendo-treeview

我正在使用 MVC Razor View 和 Kendo Controls

如何保留驻留在我的 C# 代码块中但同时在我的 Kendo 模板中也可用的全局变量,以便我可以为我获取的每个项目增加它?

我需要的是这个:

Kendo Treeview :

@(Html.Kendo().TreeView()
  .Name("DatasourceTreeview")
  .DataTextField("ControlId")
  .DataSource(dataSource => dataSource
  .Read(read => read
    .Action("RetrieveTreeviewItems", "Customizer")
    .Data("submitParams")).Events(e => e.RequestStart("loadParams")))
   .TemplateId("treeview-template")
  )

变量:
@ { int globalVariable = 1; }

模板:
<script id="treeview-template" type="text/kendo-ui-template">  
 # switch (item.ControlType) {
     case "control1": #
        globalVariable += 1;
     # break; #
     # case "control2": #
        globalVariable += 2;
     # break; #
     # default: #
        globalVariable += 3;
     # break; #
</script>

结果:
递增的全局变量

通过模板并渲染 Treeview 后,我想使用递增的 globalVariable。但是 C# 变量本身在模板中是不可见的。我怎样才能;
  • 在 C# 代码块中初始化一个变量,然后将其传递给模板
  • 根据检索到的数据增加
  • 将其传回 C# 代码块

  • 任何帮助,将不胜感激。谢谢!

    最佳答案

    您需要创建一个 JavaScript 变量,因为 Kendo 模板只不过是 JavaScript 代码。方法如下:

    <script>
    var globalVariable = @globalVariable;
    </script>
    

    关于c# - Kendo Treeview远程绑定(bind)模板内的c#变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15086500/

    相关文章:

    c# - 'List<Choice >' does not contain a definition for ' ChoiceId ' 并且没有扩展名...您是否缺少 using 指令或程序集引用?)

    c# - 接口(interface)继承在这里是正确的做法吗?为什么它不起作用?

    c++ - 如何使用c++模板有条件地编译asm代码?

    c++ - 模板类构造函数接受参数时出错

    javascript - 在razor中使用javascript转换模型属性值

    c# - 将旧 Web 窗体移植到 OWIN 时获取 HTTP 401.2 未经授权

    c# - 当运行时动态生成 'myType' 时,鉴别器 'myType' 不明确

    c++ - 使用类名的模板值作为指针

    asp.net - 如何在 Razor 中为强类型 View 设置模型

    validation - 如果验证失败则显示 div