asp.net-mvc-4 - 在 Kendo 网格 ASP.NET MVC ClientTemplate 中转义 +(加号)符号

标签 asp.net-mvc-4 kendo-ui

我在为 Kendo 网格中的列定义 ASP.NET MVC ClientTemplate 时遇到问题,因为“+”符号被删除,这会导致客户端生成的模板因语法错误而失败。

我的客户端模板是:

c.Template(@<text></text>).ClientTemplate("#='Hello' + Name#")

但是,在客户端中,这会减少为:

template: "#='Hello'   Name#"

即加号已被渲染为空格(我猜类似于 URL 编码)。如果我直接从 JS 使用,该模板可以完美运行(请参阅此 JSBin )。

有谁知道如何转义 + 号以便我可以在 ClientTemplate 中使用它?

我尝试使用“\\+”(呈现为“\”)、“\+”(无效的 C# )、+(与 + 相同,但其他如 ,' 工作正常)。

有什么想法吗?谢谢。

作为引用,我正在使用 Razor 标记和 2012 年第 2 季度 Kendo 版本(由于我们从 Telerik 升级,因此还无法使用第 3 季度,因为受到 jQuery 版本的限制)

注意:在有人问我为什么这样做之前,我的 ClientTemplate 实际上更复杂,但这是一个说明问题的简化示例:-)

最佳答案

我检查了源代码1,MVC 包装器在将所有模板呈现给 JS 之前调用 HttpUtility.UrlDecode。因此,要转义 + 号(或任何其他保留的 URL 字符),请使用 percent encoding 。在本例中%2B

c.Template(@<text></text>).ClientTemplate("#='Hello' %2B Name#")

1 v2013.3,src\Kendo.Mvc\Kendo.Mvc\UI\Grid\Columns\GridColumnBase.cs,第 135 行。我怀疑这是一个错误,他们打算调用 HttpUtility.UrlEncode

关于asp.net-mvc-4 - 在 Kendo 网格 ASP.NET MVC ClientTemplate 中转义 +(加号)符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14384183/

相关文章:

javascript - 剑道元素失去功能和风格

html - 如何在 Bootstrap 网格和表单中嵌套和垂直对齐 Kendo 单选按钮?

javascript - Kendo MultiSelect 无法读取属性 'value'

android - 带防伪、token、cookie 和参数的 Http post

asp.net-mvc-4 - 如何在 MVC4 ViewModel、Controller、View 中使用字典?

asp.net-mvc - 使用 MVVM 将 kendo.data.DataSource 绑定(bind)到组合

javascript - 动态 jqGrid 的水平滚动条问题

asp.net-mvc-4 - ClaimsAuthorizationManager.CheckAccess : Handling false without going to login page

javascript - 更改现有 Kendo Treeview 的设置(loadondemand)

javascript - Kendo grid 使用编码字符导出某些语言的 header