【问题标题】:Can not make ajax call in knockout无法在淘汰赛中进行ajax调用
【发布时间】:2012-10-01 09:00:27
【问题描述】:

我需要关于在淘汰赛中提出 ajax 请求的帮助。这是我调用 webmethod 的 js 代码。

 // Client-side routes    
Sammy(function () {
    this.get('#:day', function() {
        self.choosenDateId(this.params.day);
        $.ajax({
            type: "POST",
            url: 'SinglePageApp.aspx/GetData',
            data: "{goalDate:'" + this.params.days + "'}",
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: function (msg) {
                debugger;
                self.choosenDateGoal(msg.d);

                alert("success");
            },
            error: function (XMLHttpRequest, textStatus, errorThrown) {
                alert(textStatus);
                alert(errorThrown);
            }
        })
    });
}).run();

还有我用于绑定数据的 html

 <tbody data-bind="foreach: GetData">
            <tr data-bind="click: $root.goToGoal">
                <td data-bind="text: status"></td>
                <td data-bind="text: data"></td>
                <td data-bind="text: notes"></td>
            </tr>
        </tbody>

在我的 webemthod 中,我已将 day 作为参数传递。但无法调用 webmethod。 请帮忙。

【问题讨论】:

    标签: javascript asp.net jquery knockout.js webmethod


    【解决方案1】:
    Sammy(function () {
        this.get('#:day', function() {
            self.choosenDateId(this.params.day);
            $.get("SinglePageApp.aspx/GetData", { day: self.chosenDateId() }, self.choosenDateGoal);
        });
    }).run();
    

    我认为问题在于您在$.get 调用中使用了this.params.day。在该函数中,我相信 this 是对 jQuery ajax XHR 上下文的引用,而不是 Sammy 上下文。

    【讨论】:

    • 但它仍然不会使用 SinglePageApp.aspx/GetData 方法。
    • 你能在不使用 jquery 的情况下调用该方法吗?例如,使用浏览器或 Fiddler2?如果您不能以任何其他方式调用它,则可能不是 javascript 的问题,也可能是您未在问题中发布的其他代码的问题。另外,您是否尝试过 $.post 而不是 $.get?你试过 $.ajax 吗?
    • 我已经改变了 $.ajax,所以 webmethod 被调用但不能在 table.Here 我写了 即我已经调用了 webmethod这就是问题所在。所以我不知道如何解决这个问题。
    • 请用您的 ko 视图模型更新您的问题,包括 GetData observable(或者它是计算的)?
    猜你喜欢
    相关资源
    最近更新 更多
    热门标签