3

以下の方法で1つのリストを送信するwcfサービスがあります。しかし、以下のアプローチのような2つのパラメーターを送信したいのは、ポストメソッドによるサービスレイヤーのエンティティと同じリストまたは任意のオブジェクトである可能性があることを意味します。これは可能ですか?

以下は、オブジェクトの配列をService.に送信するために行っているプロセスであり、うまく機能しています。

jqueryコード:

      var listOfObjects=new Array();
      //creating list of objects
      for(var i=0;i<5;i++)
       {   var MyEntity=new Object();
           MyEntity.TestId =i;
           MyEntity.TestId =i+"testName";
           listOfObjects.push(MyEntity);
       }

       var jsonList=JSON.stringify(listOfObjects);
       var dataToSend = '{"myEntity":'+jsonData+'';

        //Saving info
        $.ajax({
            type: "POST",
            async: false,
            data: dataToSend,
            url: "../ServiceLayer/myService.svc/SaveResults",
            contentType: "application/json; charset=utf-8",
            dataType: "json",          
            success: function () {
                alert("success");
            },
            error: function () {
                alert("Error");
            }
        });

WCF :

    [WebInvoke(Method = "POST", RequestFormat = WebMessageFormat.Json,
     ResponseFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.WrappedRequest)]
    public void SaveLabResults(List<MyEntity> myEntity)
    {
          var lstEntities=myEntity;
    }

実在物:

[DataContract]
public class MyEntity
{
    [DataMember]
    public string TestId { get; set; }
    [DataMember]
    public string TestName { get; set; }
}

ありがとう

4

2 に答える 2

1

もちろん、別のパラメーターを追加するだけです。

   [WebInvoke(Method = "POST", RequestFormat = WebMessageFormat.Json,
     ResponseFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.WrappedRequest)]
    public void SaveLabResults(List<MyEntity> myEntity,List<MyEntity> myEntity2)
    {
          var lstEntities=myEntity;
          var lstEntities2=myEntity2;
    }

と:

var dataToSend = '{"myEntity":'+jsonData+', "myEntity2":'+jsonData2+' }';
//Saving info
$.ajax({
    type: "POST",
    async: false,
    data: dataToSend,
    url: "../ServiceLayer/myService.svc/SaveResults",
    contentType: "application/json; charset=utf-8",
    dataType: "json",          
    success: function () {
        alert("success");
    },
    error: function () {
        alert("Error");
    }
});
于 2013-03-25T16:20:43.030 に答える
0

はい、複数のパラメーターを送信できます。Web メソッドとクライアント側の両方で宣言するだけです。

[WebInvoke(Method = "POST", RequestFormat = WebMessageFormat.Json,
 ResponseFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.WrappedRequest)]
public void SaveLabResults(List<MyEntity> myEntity, SomeObject secondParameter)
{
      var lstEntities=myEntity;
}

そしてクライアント側では:

var dataToSend = '{"myEntity":'+jsonData+', "secondParameter":'+secondObject+'}';

パラメータ名は、サーバー側とクライアント側の両方で一致する必要があります。

于 2013-03-25T16:21:54.843 に答える