0

私は次のようにやっている投稿リクエストを持っています:

var addProject = function (project, id) {
            return $.ajax(projectUrl, {
            type: "POST",
            data: { project: project, id: id }
    });
};

これで問題なく、プロジェクト オブジェクト (JSON 形式) が問題なく送信されます。私がやりたいのはこの要求ですが、サーバーコントローラーに渡すことができるキー (プロジェクトオブジェクトに属していない) も追加します。私がこれを行うことができるかどうか、またはこれを行うための良い方法は何か。たまにしか必要としないキーを考慮してオブジェクト モデルを変更する必要はありません。

これは ASP.NET MVC4 プロジェクトであり、問​​題があれば Web API コントローラーに戻ります。

編集:これが私のサーバー側のものです

    public HttpResponseMessage PostNew(Project project, int id)
    {
        //TODO grab the client to add the project to
        Uow.Projects.Add(project);
        Uow.Commit();

        HttpResponseMessage response = Request.CreateResponse(HttpStatusCode.Created, project);
        //response.Headers.Location = new Uri(Url.Link("ApiControllerAction", new { id = client.ID }));
        return response;
    }

多分私は十分に明確ではありません。プロジェクト オブジェクトを渡してから、int 変数だけを渡したいと思います。プロジェクトを単独で渡すことはできますが、int を渡そうとすると 400 エラーが発生します

4

2 に答える 2

3
var addProject = function (project) {
            return 
              $.ajax(projectUrl, {
                type: "POST",
                data: {data1 : 'Object',data2: 'variable'}
              });
};

オブジェクトと変数の 2 つのデータ パラメータを送信するだけです。

于 2012-11-02T22:19:03.657 に答える
0

複雑なオブジェクトを渡す最も簡単な方法は、JSON エンコードすることです。

var addProject = function (project) {
    return $.ajax(projectUrl, {
        type: "POST",
        contentType: 'application/json',
        data: JSON.stringify(project)
    });   
};

サーバー側でこれをデコードするには、何らかの JSON デコーダーが必要です。C#にはいくつか利用可能なものがあると確信しています。

于 2012-11-02T23:06:32.230 に答える