【问题标题】:How to post JSON data to SQL using ajax post & knockout如何使用 ajax post & knockout 将 JSON 数据发布到 SQL
【发布时间】:2013-01-25 15:13:48
【问题描述】:

我有一个非常简单的视图模型:

 var ProjectViewModel = {
        ProjectName: ko.observable().extend({ required: "" }),
        ProjectDescription: ko.observable().extend({ required: "" }),
        ProjectStartDate: ko.observable(),
        ProjectEndDate: ko.observable()
    };

我想将位于我的视图模型中的数据保存到我的 SQL 服务器。 我有一个类在我的服务器端代码中定义这个视图模型:

 public class Projects
{
    public string ProjectName { get; set; }
    public DateTime ProjectStartDate { get; set; }
    public DateTime ProjectEndDate { get; set; }
    public string ProjectDescription { get; set; }

}

我也有这个web方法来接收代码:

 [WebMethod]
    public bool SaveProject(string[] JSONDATA)
    {
        TaskNinjaEntities entities = new TaskNinjaEntities();

        foreach (var item in JSONDATA)
        {
            Console.WriteLine("{0}", item);
        }

        return true;      

    }

最后我有了这个不想将数据发送到服务器的 POST:

function SaveMe() {

        var data = ko.toJSON(ProjectViewModel);
        $.post("CreateProject.aspx/SaveProject", data, function (returnedData) {
        });
    }

我从这个 post 方法返回的数据中什么也没得到,还在服务器端代码中添加了断点,它根本没有命中它。我的 URL 是正确的,并且 Viewmodel 可以毫不费力地转换为 JSON。

【问题讨论】:

  • 您是否查看过 Web 开发人员工具或 Fiddler 的“网络”选项卡中的 POST 是什么样的?
  • +1 用于使用 Fiddler 找出幕后发生的事情

标签: asp.net json knockout.js


【解决方案1】:

将网络方法设为静态。

[WebMethod]
public static bool SaveProject(string[] JSONDATA)
{
    TaskNinjaEntities entities = new TaskNinjaEntities();

    foreach (var item in JSONDATA)
    {
        Console.WriteLine("{0}", item);
    }

    return true;         

}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-09-15
    • 2021-08-28
    • 1970-01-01
    • 2013-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多