You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ASP.NET Core Kendo UI Grid自定义命令模板失效问题

解决ASP.NET Core中Kendo UI Grid自定义命令模板URL绑定失效问题

你碰到的这个问题其实很常见,核心原因是Razor服务器端解析和Kendo客户端模板语法的执行顺序冲突了。

你用@Html.ActionLink的时候,这个Razor辅助方法会在服务器端先运行,这时候Kendo的#: NameEn#模板语法还没机会生效,服务器直接把它当成了普通字符串处理,最终就出现了编码后的%23%3A%20NameEn%23这种奇怪的URL片段。

给你两种实用的解决办法,选哪种都可以:

方法一:改用纯客户端链接(推荐)

直接写原生的<a>标签,用Kendo模板语法绑定href属性,让客户端渲染时替换变量:

<script id="commandsTemplate" type="text/x-kendo-template">
    <div class='dropdown dropdown-inline'>
        <button type='button' class='btn btn-hover-brand btn-elevate-hover btn-icon btn-sm btn-icon-md' data-toggle='dropdown' aria-haspopup='true' aria-expanded='false'>
            <i class='flaticon-more-1'></i>
        </button>
        <div class='dropdown-menu dropdown-menu-right'>
            <a href='/Blabla/Details/#: NameEn#' class='dropdown-item'>Edit</a>
        </div>
    </div>
</script>

如果你的项目用了自定义路由,不想硬写路径,可以先用Razor的Url.Action拿到基础路由,再拼接Kendo模板变量:

<a href='@Url.Action("Details", "Blabla")/#: NameEn#' class='dropdown-item'>Edit</a>

这样既保留了路由的灵活性,又能让Kendo正确替换行数据里的NameEn值。

方法二:保留Html.ActionLink(需处理Razor解析)

如果一定要用Html.ActionLink,可以用@Html.Raw来避免Razor把Kendo模板语法转义,同时把模板变量嵌入到链接里:

<script id="commandsTemplate" type="text/x-kendo-template">
    <div class='dropdown dropdown-inline'>
        <button type='button' class='btn btn-hover-brand btn-elevate-hover btn-icon btn-sm btn-icon-md' data-toggle='dropdown' aria-haspopup='true' aria-expanded='false'>
            <i class='flaticon-more-1'></i>
        </button>
        <div class='dropdown-menu dropdown-menu-right'>
            @Html.Raw($"<a href='{Url.Action("Details", "Blabla")}/#: NameEn#' class='dropdown-item'>Edit</a>")
        </div>
    </div>
</script>

@Html.Raw的作用是告诉Razor不要把里面的HTML标签转义成实体,确保客户端能正确识别Kendo的模板语法。

额外注意点

  • 确认你的Grid数据源里确实存在NameEn字段,并且字段名大小写和模板里的完全一致(Kendo模板是区分大小写的);
  • Kendo的#: #语法会自动对变量进行HTML编码,能有效避免XSS风险,不用额外处理特殊字符。

内容的提问来源于stack exchange,提问作者HoseiniPeyrov

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.11 07:43:54