DotVVM 标记控件 属性 未返回

DotVVM Markup Conrtrol Property Not Returned

我正在编写 DotVVM 标记控件。此控件有一个可能是动态的 link 标签,因此我在代码隐藏文件中有一个 属性 标签。

标记

<td class="navigation_unselected"><a href="~/Members.aspx?TABLE=MEMINFO" class="Navigation_Text">{{controlProperty: MemberKey}}&nbsp;LIST</a></td>

代码隐藏

        public string MemberKey
        {
            get { return (string)GetValue(MemberKeyProperty); }
            set { SetValue(MemberKeyProperty, value); }
        }
        public static readonly DotvvmProperty MemberKeyProperty
            = DotvvmProperty.Register<string, MainNavigationControl>(c => c.MemberKey, "Member");

问题是当我运行页面时,属性似乎return null还是空的,而link文本只有“列表”。默认值“成员”不是 returned。我不是 KnockoutJS 的专家,但是生成的 HTML 看起来相当简单:

渲染HTML

<a href="/ImpactProDevDotVVM/Members.aspx?TABLE=MEMINFO" class="Navigation_Text">
<!-- ko text: $control.MemberKey -->
<!-- /ko -->
&nbsp;LIST</a>

我已经为此工作了几个小时,我不确定这段代码有什么问题。当我简单地将“MEMBER”这个词放在标记中时,它可以工作,但要求它是动态的并具有默认值。

谁能看出我哪里出错了?

问题似乎出在 KnockoutJS 的生成方式以及浏览器添加的隐式 <tbody> 上。解决方案是在我的整个 table 周围添加一个 explicit <tbody>。我被一个类似的错误指向了这个方向: Knockout Error: Cannot find closing comment tag to match