我很感激任何帮助。
我每次尝试使用Kendo Grid href
事件更改链接change()
:
function ContractsGrid_onChange(e) {
var selected = this.select()[0],
item = this.dataItem(selected);
$('#createOnBase').attr('href', function () {
var createLink = document.getElementById("createOnBase");
var route = 'http://' + createLink.hostname + createLink.pathname + "?contractID =" + item.ID;
return route;
});
}
@Ajax.ActionLink("Create", "CreateOnBase",
new { contractID = "_contractID_" },
new AjaxOptions() {... },
new { id="createOnBase" })
我不确定当前的方法,因为我有不同的主机名(localhost与端口或服务器域)
最好的方法是:
var route = "@Url.Action('CreateOnBase', new { contractID = ??})";
但我不能在剃须刀中使用JS变量(item.ID
)。
此外,this.href.replace("_contractID_", item.ID)
无法进行多项更改。
你能帮我解决另一个问题吗?
非常感谢!
答案 0 :(得分:1)
是的,这很容易,我找到了一种方法:
$('#createOnBase').attr('href', function () {
return "@Url.Action("CreateOnBase")"+ "/?contractID=" +item.ID;
});
也许对某人有帮助。
答案 1 :(得分:1)
出现在我脑海中的第一个想法是将根网址存储在单独的变量中。这样的事情:
function ContractsGrid_onChange(e) {
var selected = this.select()[0],
item = this.dataItem(selected);
var rootUrl = @Url.Action("Create", "CreateOnBase");
$('#createOnBase').attr('href', function () {
var createLink = document.getElementById("createOnBase");
var route = rootUrl + "?contractID =" + item.ID;
return route;
});
}
这只是一种解决方法,不确定某些高级方式......