C# optionsText未应用于我的淘汰选择对象

C# optionsText未应用于我的淘汰选择对象,c#,asp.net-mvc,knockout-mvc,C#,Asp.net Mvc,Knockout Mvc,在我的第一次淘汰赛经历中,我与一名球员一起工作,并且已经学到了很多东西。我试图做的是填充一个新对象并将其推送到viewModel中进行显示 选择框(下拉框)正在填充,但当我单击“添加”时,对象名称为空。然后我突然想到,我需要收集两个字段来组装对象,所以我不确定我的方法是否正确 我的数据模型: function Colors(data) { this.ID = ko.observable(data.ID); this.ColorName = ko.observable(da

在我的第一次淘汰赛经历中,我与一名球员一起工作,并且已经学到了很多东西。我试图做的是填充一个新对象并将其推送到viewModel中进行显示

选择框(下拉框)正在填充,但当我单击“添加”时,对象名称为空。然后我突然想到,我需要收集两个字段来组装对象,所以我不确定我的方法是否正确

我的数据模型:

    function Colors(data) {
    this.ID = ko.observable(data.ID);
    this.ColorName = ko.observable(data.ColorName);
    this.Duration = ko.observable(data.Duration);
}
视图:

运行时,下表中的ColorName为空,但添加了一个空条目

显示/更新表格:

<table>
<thead>
    <tr>
        <th padding: 10px; >Color</th>
        <th padding: 10px; >Duration</th>
    </tr>
</thead>
<tbody data-bind="foreach: AddColors">
    <tr>
        <td data-bind="text: ColorName"></td>
        <td data-bind="text: Duration"></td>
        <td>
            <a href='#' data-bind='click: $parent.removeLine'>Remove</a>
        </td>
    </tr>
</tbody>

颜色
期间


我正在做的是为新创建的对象向数组中添加对象吗?我没有看到SelectedColor.SelectedText或任何类似内容。如何访问“选择”下拉列表的“文本”属性?

我不确定我之前所做的是否有效,但我放弃了我所做的,并在添加行后添加到“选择”框中,这与教程所做的相同。成功了。非常感谢您,Robert。

我还应该提到,我曾尝试使用{ColorName:SelectColor…}手动填充列表,但我找不到要设置的文本值,只有ID num的.value。我不太清楚您遇到了什么问题。首先您提到
选择
,然后是“持续时间”
输入
不起作用,最后是当您单击按钮时添加了一个条目,但
颜色名称
为空(持续时间如何?)。我不确定我是否理解你的实际问题,所以请编辑你的问题并澄清。我的猜测是,您有两个问题,您没有将
NewColor
绑定绑定到
NewColor
对象(但这只是一个猜测),并且您没有正确使用
选项
bindingHandler(值bindingHandler看起来很奇怪)。请编辑您的问题并澄清实际问题。如果您还可以制作一个jsfiddle()、jsbin()或plunker(),以显示您的视图模型和绑定,并显示您的问题,那么这将极大地帮助您。关于
select
元素上的
options
绑定,我建议您仔细检查一下。我只是通知读者那里有一个问题,但我没有考虑持续时间问题。我正在处理的问题是选择框和从框中获取文本/当前选定项。看起来我可能一直在试图做错事;似乎我必须创建一个变量,并将其指定给select中的value=。昨天晚上我发现那篇文章时只有一个小时左右的时间,但我还没找到什么好运气。我确实计划在这里进一步研究。你看过上面提到的教程了吗?你能解决你的问题吗?还是你仍然有问题?
        self.addColor = function() { self.AddColors.push(new Color(NewColor )) };
<table>
<thead>
    <tr>
        <th padding: 10px; >Color</th>
        <th padding: 10px; >Duration</th>
    </tr>
</thead>
<tbody data-bind="foreach: AddColors">
    <tr>
        <td data-bind="text: ColorName"></td>
        <td data-bind="text: Duration"></td>
        <td>
            <a href='#' data-bind='click: $parent.removeLine'>Remove</a>
        </td>
    </tr>
</tbody>