0

WCF サービスの配列要素に値を渡しています。ここではjQueryを使用しています。

私の機能は次のとおりです。

Service.cs で:

public class User
{

    Dictionary<int, string> users = null;
    public User()
    {
        users = new Dictionary<int, string>();
        users.Add(1, "apple");
        users.Add(2, "orange");
        users.Add(3, "lemon");
        users.Add(4, "grape");
    }

    public string[] GetUser(int Id)
    {
        var user = from u in users
                   where u.Key == Id
                   select u.Value;

        return user.ToArray<string>();
    }

jQuery の場合:

function CallService() {
             $.ajax({
                 type: Type, 
                 url: Url, 
                 data: Data, 
                 contentType: ContentType,
                 dataType: DataType, 
                 processdata: ProcessData, 
                 success: function(msg) {
                     ServiceSucceeded(msg);
                 },
                 error: ServiceFailed
             });
         }

次のように宣言する最初の関数:

 function WCFJSON() {

             var uesrid = "2";
             Type = "POST";
             Url = "Service.svc/GetUser";
             Data = '{"Id": "' + uesrid + '"}';
             ContentType = "application/json; charset=utf-8";
             DataType = "json"; ProcessData = true; 

             CallService();

         }

この関数は、次のように呼び出しました。

 $(document).ready(
         function() {
         WCFJSON();
         }
         );

私の2番目の機能は次のとおりです。

function temp()
         {
         //var id=parseInt($('#txtinput').val();
         var id="5";
         Type="POST";
         Url="Srvice.svc/GetUser";
         Data='{"Id":"'+id+'"}';
         ContentType="application/json;charset=utf-8";
         DataType="json";ProcessData=true;
        CallService();

         }

以下のように、クライアントのボタンをクリックしてこの関数を呼び出しました。

<asp:Button ID="btnsumbit" runat="server" Text="submit" OnClientClick ="temp();"  />

私の問題は、このプログラムを実行したときに、最初の関数 (「WCFJSON();」)、「temp();」の他の関数からの結果しか得られなかったことです。何の結果も得られませんでした。何が欠けているのかわからない?誰でもこれを解決できますか?

4

1 に答える 1

0

ここに画像の説明を入力 Data = '{"Id": "' + uesrid + '"}';

次のようにする必要があります。

Data = {"Id": uesrid};

これはオブジェクトであると想定されており、$.ajaxシリアル化されます。

temp() で、以下を変更します。

Data='{"Id":"'+id+'"}';

に:

Data={"Id": id };
于 2012-10-13T05:44:10.320 に答える