0

C# コントローラーで jQuery Ajax 呼び出しを正常に実行し、XML 文字列を受け取ることができますが、別の C# コントローラーに送り返すことができるように、Portfolio の日付をいくつか収集して JSON オブジェクトにパッケージ化する必要があります。C# の問題である場合、間違ったフォーラムにいる場合は申し訳ありませんが、JSON オブジェクトをサーバー側のコントローラーに渡したい..

これが私がやろうとしていることです:

        var nodeDatesJson = {"nodedates":        // CREATE JSON OBJECT OF DATE STRINGS
                            { "date": 01/20/2012,
                              "date": "01/21/2012" } };
        getTradeContribs(thisPfId, nodeDatesJson.nodedates.date);     

次の js 関数を呼び出します。

 function getTradeContribs(pfid, nodedates) {
        //alert(nodedates);
        $.ajax({                                // GET TRADE CONTRIBS FROM SERVER !!
            url: "/Portfolios/getTradeContribs?portfolioId=" + pfid + "&nodedates=" + nodedates,
            type: "GET",    // or "PUT"
            dataType: "json",               
            async: true,
            success: parseTradeContribs,
            error: function (error) {
                alert("failed in opening Trade Contribs file !!!");
            }
        });
    }
    function parseTradeContribs(data) {
        alert("In parseTradeContribs..." );
        $(data).find("Trade").each(function(){
            $(".TradeContrib").append($(this).text());
        })
    }

私のC#コントローラーは「nodedates」JSONオブジェクトを読み込もうとしてますが、どうすれば読み込めますか?

   public string getTradeContribs(string portfolioId, **string nodedates**)
        {

            // Build Portfolio Select request here !
            RequestBuilder rzrRequest = new RequestBuilder();

            // REQUEST FOR CONTRIBUTIONS !
            // ... more code here..
            xmlResponse.LoadXml(contribResponse);

            string jsonTest = @" {""nodedates"": ""date"":""01/01/2012""}";

            //return xmlResponse.OuterXml;  // WORKS FINE
            return "<Trade><TradeId>1234</TradeId></Trade>";    // RETURN TEST XML STR

        }

よろしくお願いします... ボブ

4

2 に答える 2

1

MVC アクションで日付のリストを受け取る最良の方法は、コレクションにバインドすることです。これが意味することは、次の命名規則に従って、日付やその他の属性をフォームに配置する必要があるということです。

<input type="hidden" name="dates" value="2012-1-20" />  
<input type="hidden" name="dates" value="2012-1-21" />  

次に、このフォームをシリアル化し (これについては jquery のドキュメントを参照)、そのデータをアクションに投稿する必要があります。これは、次のようなものになります。

public ActionResult getTradeContribs(string portfolioId, IList<DateTime> dates) {
  // Do your work here
}  

MVC モデル バインディングとコレクション バインディングも実際に検討する必要があります。
リストへの
モデル バインディング モデル バインディング オブジェクト


また、可能であれば、あなたの JavaScript オブジェクトには同じ名前の 2 つのプロパティがありますが、これはおそらくあなたの意図とは異なります。オブジェクトのどこかに複数の日付を格納したい場合は、配列を使用する必要があります。

    var nodeDatesJson = {"nodedates":  
                        [ "01/20/2012", "01/21/2012" ] };  
于 2012-07-27T17:26:42.307 に答える
0

申し訳ありませんが、私はあなたの疑問をよく理解していませんでした...しかし、次のようになります。

おそらく、適切にフォーマットされたjsonを文字列として渡し、C#パーサーを使用する必要があります。

このようにして、javascript の Json オブジェクトと同じように、サーバー側でオブジェクトを取得できます。

=]

于 2012-07-26T21:00:18.843 に答える