Kendo UI Grid - 客户端模板:转义#符号

Mar*_*ark 3 c# twitter-bootstrap kendo-ui kendo-grid kendo-asp.net-mvc

我正在使用Kendo UI的网格以及Twitter Bootstrap.

Twitter Bootstrap有一个内置的弹出/模态,可以通过以下方式调用:

<a href="#" class="text-yellow" data-toggle="modal" data-target="#login">Login</a>
Run Code Online (Sandbox Code Playgroud)

在我的Kendo UI网格中,我有一个自定义列模板:

   columns.Template(e => { }).ClientTemplate("<span data-toggle='modal' data-target='#login' title='Flag Animals as Dead or Deceased' style='cursor:pointer;' class='glyphicon glyphicon-flag flag-dead text-red'></span>").Width(50);
Run Code Online (Sandbox Code Playgroud)

这就是我遇到问题的地方,如果你注意到,你需要用#符号指定模态窗口的Id.即data-target='#login'

每当#符号出现在我的网格模板中时,网格就会中断.我怎么能逃脱这个标志?

cyc*_*epe 6

你可以像这样使用\字符来转义# data-target='\#login'

更新:来自telerik文档kendo模板

如果您的模板包含一个文字#字符,它不是绑定表达式的一部分而不是脚本代码标记,那么您必须转义该字符,否则将导致模板编译错误.例如,如果在超链接URL或CSS颜色值中使用#,则会发生这种情况.Javascript字符串中的Literal#使用\\#进行转义,而外部HTML脚本模板中的literal#则使用\#进行转义.

  • 请记住,C#Razor本身需要逃避反斜杠,JavaScript也是如此.要获得单个反斜杠以逃避剑道客户端模板中的`#`,我需要在我的Razor代码中输入***4***! (4认同)