C# js将参数绑定到返回对象而不是文本的数据目标(手风琴)

C# js将参数绑定到返回对象而不是文本的数据目标(手风琴),c#,jquery,model-view-controller,knockout.js,view,C#,Jquery,Model View Controller,Knockout.js,View,对于Knockout.Js来说是个新手,三天后我就要开始熟悉数据绑定了 我已经创建了一个动态手风琴,当使用attr:{'data-target':'#'+RecipeName'进行数据绑定时,我返回数据目标=#[object object],我知道我可以返回名称 如果我使用data bind=“text:RecipeName”(但我需要将#附加到它 允许我的手风琴以正确的Id打开…) 我在网上查过,似乎找不到足够的答案。我试过谷歌 开发工具将#[object]更改为我期望的值,效果良好 请有人解

对于Knockout.Js来说是个新手,三天后我就要开始熟悉数据绑定了

我已经创建了一个动态手风琴,当使用attr:{'data-target':'#'+RecipeName'进行数据绑定时,我返回数据目标=#[object object],我知道我可以返回名称 如果我使用data bind=“text:RecipeName”(但我需要将#附加到它 允许我的手风琴以正确的Id打开…)

我在网上查过,似乎找不到足够的答案。我试过谷歌 开发工具将#[object]更改为我期望的值,效果良好

请有人解释一下为什么会发生这种情况,以及需要解决什么……我想这很简单吧

<section id="results" style="margin-top: 1em;">
    <div class="accordion-group">
        <div class="accordion-heading">
        <table class="table table-striped table-hover accordion">
            <thead>
                <tr>
                    <th>Set Next</th>
                    <th>Name</th>
                    <th>Bench</th>
                    <th>Transacted</th>
                    <th>Receipe Name</th>
                </tr>
            </thead>

            <tbody data-bind="foreach: Stages">

                *****<tr class="accordion-toggle" data-toggle="collapse" data-target="#" data-bind="attr: {'data-target': '#' + RecipeName}">*****
                    <td data-bind="css: CellClass">
                        <button class="btn btn-warning" data-bind="attr: {'data-id': Id}" data-toggle="modal" data-target="#moveReason">@Html.LocalisedStringFor(model => model.MoveToStageText)</button>
                        <a class="text" data-bind="attr: {'data-id': Id}" data-toggle="modal" data-target="#moveReason"><span>@Html.LocalisedStringFor(model => model.CurrentPositionText)</span></a>
                    </td>
                    <td><span data-bind="text: ProcessName"></span></td>
                    <td><span data-bind="text: BenchName"></span></td>
                    <td><span data-bind="text: TransactionStatus"></span></td>
                    <td><span data-bind="text: RecipeName"></span></td>
                </tr>
                <tr id="" class="accordion-body collapse" data-bind="attr: {'id':RecipeName}">
                    <td colspan="5">
                        <div class="accordion-inner" data-bind="foreach: $parent.Stages">
                            <ul>
                                <li> <span data-bind="text: StepName"></span></li>
                                <button class="btn btn-warning" data-bind="attr: {'data-id': Id}" data-toggle="modal" data-target="#moveReason">@Html.LocalisedStringFor(model => model.MoveToStageText)</button>
                            </ul>

                        </div>

                    </td>
                </tr>
            </tbody>

        </table>
        </div>
        </div>
</section>

下一步
名称
长凳
交易
收信人姓名
**********
@LocalisedStringFor(model=>model.MoveToStageText)
我怀疑

需要

另一个选项是在viewmodel上放置一个属性,该属性符合您需要的逻辑

function ViewModel(){
  var self = this;
  self.RecipeName = ko.observable();
  self.RecipeNameHash = ko.pureComputed(function(){
    return '#' + self.RecipeName();
  });
}
然后,表行变为


非常感谢!!你的答案对我很有用。。很遗憾,我还不能投票,但如果可能的话,我会投票的!!小小的特威克省了我几个小时的痛苦。非常感谢。