【发布时间】:2020-11-17 23:36:48
【问题描述】:
我的视图有一个带有 ClientTemplate 的 Kendo Grid,按以下方式为列定义:
.ClientTemplate("<button type ='button' class='k-button btn-icon-sm btn-view-detail' id='btnTicketDetail' onclick='showDetails(this)'><span class='k-icon k-i-file-txt'></span></button>#=data.TicketId#");
以上代码调用JavaScript函数showDetails
此功能与剑道网格在同一视图中定义:
function showDetails(e) {
var grid = $("#VarianceTicket").data("kendoGrid");
var row = $(e).closest("tr");
var rowIdx = $("tr", grid.tbody).index(row);
var item = grid.dataItem(row);
var ticketDetailsUrl = "@Url.Action("Index", "VarianceTicketDetail", new System.Web.Routing.RouteValueDictionary(new { id = "data" }), Request.Url.Scheme)".replace("data", item.TicketId);
var newURL = ticketDetailsUrl;
window.open(newURL, '_blank');
}
现在,我需要将该函数移动到一个通用的 Site.js 文件中。
当我这样做时,函数中的以下行不正确:
var ticketDetailsUrl = "@Url.Action("Index", "VarianceTicketDetail", new System.Web.Routing.RouteValueDictionary(new { id = "data" }), Request.Url.Scheme)".replace("data", item.TicketId);
看起来是这样的:
基本上,如我所见,它无法构建@Url.Action 字符串。
我应该怎么做才能确保它有效?
【问题讨论】:
标签: asp.net-mvc-4 model-view-controller kendo-ui url-action