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 级嵌套层次结构