asp.net core kendo ui 网格自定义命令模板不起作用

Posted

技术标签:

【中文标题】asp.net core kendo ui 网格自定义命令模板不起作用【英文标题】:asp.net core kendo ui grid custom command template not work 【发布时间】:2021-03-20 19:19:06 【问题描述】:

这是我的剑道 ui 网格命令:

                columns.Command(cmd =>
                
                    cmd.Custom("CustomButton").TemplateId("commandsTemplate");

                ).Title("Commands").Width(250);

这是模板:

<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.ActionLink("Edit", "Details", "Blabla", new  id = "#: NameEn#" , new  @class = "dropdown-item" ))
         </div>
    </div>
</script>

但生成的 url 正是:

http://localhost:56516/Blabla/Details/%23%3A%20NameEn%23

【问题讨论】:

【参考方案1】:

模板中的链接是使用 razor 语法创建的,该语法在发送到浏览器之前在服务器上运行。服务器不知道 #:NameEn# 是什么意思,因此在生成的 url 中直接使用它。

您不能在 razor 语法中使用剑道模板语法。一个被评估客户端和另一个服务器端,因此它们不会混合。在这种情况下,只需将 Html.ActionLink 行替换为您可以在其中使用 #:NameEn#

的实际 html

比如:

<a href="/Blabla/Details/#:NameEn#"></a>

【讨论】:

以上是关于asp.net core kendo ui 网格自定义命令模板不起作用的主要内容,如果未能解决你的问题,请参考以下文章

用于 jquery CRUD 的 Asp.net core mvc + kendo ui

使用 Kendo UI Asp.net mvc core 未显示图表组件

编辑网格时,如何按行禁用特定字段? Kendo UI ASP.Net MVC 包装器

如何使用 ASP.NET MVC 在 Kendo UI Grid 中实现 N 级嵌套层次结构

e.slice 不是带有 Kendo UI 的 ASP.NET MVC 中的函数错误

ASP.Net MVC Kendo Grid 的自定义分页