Javascript Knockoutjs正确绑定,但是标签上的href不';不要重定向到页面

Javascript Knockoutjs正确绑定,但是标签上的href不';不要重定向到页面,javascript,html,knockout.js,Javascript,Html,Knockout.js,我有这个html: <ul class="nav nav-tabs ilia-cat-nav" data-toggle="dropdown" data-bind="foreach : Items" style="margin-top:-30px"> <li role="presentation" data-bind="attr : {'data-id' : ID , 'data-childCount' : Children().length}" style="paddi

我有这个html:

<ul class="nav nav-tabs ilia-cat-nav" data-toggle="dropdown" data-bind="foreach : Items" style="margin-top:-30px">
    <li role="presentation" data-bind="attr : {'data-id' : ID , 'data-childCount' : Children().length}" style="padding-left: 20px; padding-right: 20px;  text-align: center; color: white" class="active-li">
        <label id="menu1" data-toggle="dropdown" data-bind="text: Name"></label>
        <ul class="dropdown-menu" data-bind="foreach: Children" role="menu" aria-labelledby="menu1">
            <li role="presentation"><a role="menuitem" data-bind="text: Name, attr: { 'href': Url} "></a></li>
        </ul>
    </li>
</ul>
更新


我必须说,当我右键单击项目并在新窗口中打开时,它确实可以工作并显示页面,但直接左键单击不起作用

最后我累了,我只需点击一个简单的jquery就可以了:

    $(document).ready(function () {
        setTimeout(function () {
            $(document).on("click", ".ilia-catLink", function () {
                var a = $(this).attr("href");

                window.location = a;
            });
        }, 100);

它是这样工作的,但我仍然想知道为什么href本身不起作用

问题可能出在生成的URL中的引号中:

href="/site/models#{"catId": "76b4a8ed-1350-46af-8184-3b68029cbd22"}"
href
的值实际上是
“/site/models{”
将URL的其余部分保留为无效HTML

您可以尝试绑定到转义的URL:

this.Url = ko.computed(function () {
    return encodeURI('/site/models#{"catId": "' + self.ID() + '"}');
});
您的
#
链接是否指向用户已经在的页面?因为如果是,据我所知,浏览器将触发哈希更改事件而不是页面重新加载。。。
this.Url = ko.computed(function () {
    return encodeURI('/site/models#{"catId": "' + self.ID() + '"}');
});