Asp.net 无法获取hiddenfield值

Asp.net 无法获取hiddenfield值,asp.net,knockout.js,Asp.net,Knockout.js,我想访问敲除中的隐藏字段值。 这是我的html代码 <td> <input type="checkbox" data-bind="checked: status, disable: status, click: $root.UpdateStatus" /> <input id="hdnGoalId" type="hidden" data-bind="value: goal

我想访问敲除中的隐藏字段值。
这是我的html代码

<td>
                        <input type="checkbox" data-bind="checked: status, disable: status, click: $root.UpdateStatus" />
                        <input id="hdnGoalId" type="hidden" data-bind="value: goalId" />
                    </td>
在UpdateNote中,我希望通过所选的goalId。
请给我一些建议。

我发现两个可能的问题

  • goalId必须定义为可观察的,因为您要在视图中使用
    data bind=“value:goalId”
    绑定到它
  • 要获得goalId的值,必须将其作为函数调用(因为它是可观察的)
  • 请参见更新的视图模型:

    var WebmailViewModel = function() {
        var self = this;
        self.goalId = ko.observable(10); // where 10 is whatever value goalId should be
        self.UpdateNote = function() {
            $.ajax({
                type: "POST",
                url: 'SinglePageApp.aspx/UpdateNote',
                data: "{goalId: '" + self.goalId() + "'}",
                contentType: "application/json; charset=utf-8",
                success: function(result) {
                    alert(result.d);
                }
            });
        };
    };
    

    谢谢你的回复。我通过这样更新得到了解决方案

    self.UpdateNote = function (tblUsers) {
        $.ajax({
            type: "POST",
            url: 'SinglePageApp.aspx/UpdateNote',
            data: "{goalId: " + tblUsers.goalId + "}",
            contentType: "application/json; charset=utf-8",
            success: function (result) {
                alert(result.d);
            },
            error: function (XMLHttpRequest, textStatus, errorThrown) {
                alert(textStatus);
                alert(errorThrown);
            }
        });
    };
    

    其中tblUsers是json对象。

    您需要访问隐藏字段bij doing:$(“#hdnGoalId input[type=hidden]”)。val();我已经应用了它。但它显示未定义的值。我在hiddeninput..>@JonathanRomer的id处创建了一个类型。您的方法不符合敲除模式。@akeeseth它显示未定义,因为您正在将值绑定到可观察对象,但没有在任何地方设置值。您需要这样做:
    self.goalId=ko.observable(10)
    其中
    10
    是goalId应该具有的值。
    self.UpdateNote = function (tblUsers) {
        $.ajax({
            type: "POST",
            url: 'SinglePageApp.aspx/UpdateNote',
            data: "{goalId: " + tblUsers.goalId + "}",
            contentType: "application/json; charset=utf-8",
            success: function (result) {
                alert(result.d);
            },
            error: function (XMLHttpRequest, textStatus, errorThrown) {
                alert(textStatus);
                alert(errorThrown);
            }
        });
    };