在ASP.NET MVC中,可以使用ActionLink方法来生成一个超链接,将knockout.js的值传递给ActionLink的方式有以下几种:
var value = ko.observable("example");
var link = $('<a>').attr('href', '@Url.Action("ActionName", "ControllerName")?value=' + value()).text('Link');
在上述代码中,我们使用了@Url.Action
来生成ActionLink的URL,并将knockout.js的值作为查询参数传递给ActionLink。
ko.bindingHandlers.actionLink = {
init: function(element, valueAccessor, allBindingsAccessor, viewModel) {
var value = ko.unwrap(valueAccessor());
var url = '@Url.Action("ActionName", "ControllerName")?value=' + value;
$(element).attr('href', url);
}
};
在上述代码中,我们创建了一个名为actionLink
的自定义绑定,该绑定会在元素初始化时将knockout.js的值传递给ActionLink。
然后,在HTML中使用该自定义绑定:
<a data-bind="actionLink: knockoutValue">Link</a>
在上述代码中,我们使用data-bind
属性将自定义绑定应用到超链接上,并将knockout.js的值绑定到knockoutValue
属性上。
以上是将knockout.js的值传递给ActionLink的两种常见方式。根据具体的业务需求和项目架构,可以选择适合的方式来实现。
领取专属 10元无门槛券
手把手带您无忧上云