2009-04-16 5 views
0

私はASP.Net AJAXを使用しており、私のアプリケーションでWebサービスを作成しました。このサービスは1つのメソッド(AddWatchedFolder)を持ち、唯一のパラメータとしてName.Space.WatchedFolderをとります。問題は、ASP.Net AJAXはScriptManagerにサービスを追加したにもかかわらず、Name.Space.WatchedFolderのjavascript型を生成していないことです。ASP.Net AJAXがJavaScript形式を作成していません

パラメータの型を文字列に変更することはできますが、うまくいきますが、javascriptから作成できないため、そのビジネスオブジェクトをパラメータとして使用することはできません。

クラス(Name.Space.WatchedFolder)は、違いがあれば、別のクラスライブラリプロジェクトに存在します。

これを動作させる方法はありますか?

答えて

0

これはASP.NET Ajaxが動作する方法です。オブジェクトを匿名のjavascriptオブジェクトとして渡すことができます。 JavaScriptシリアライザは、おそらく、指定されたJSONからカスタムオブジェクトを解析することを管理します。ここではいくつかのコードは次のとおりです。

ASMX:

[WebMethod] 
public void MyMethod(MyObject arg) 
{ 
    return arg.Property1 + arg.Property2; 
} 

はJavaScript:

var arg = { Property1 : "One", Property2 : "Two" }; 
MyNameSpace.MyService.MyMethod(arg); 
+0

なぜそれがそのように動作しますか?それはクラスが別のプロジェクトに入っているからですか?これは、同じプロジェクトにあるもののJavascript型を作成します。 –

+0

Webサービス専用のクラスを作成する必要があります。同じプロジェクトで定義されたパラメータのクラスを作成していますか? –

+0

はい。これは常にパラメータの型を作成しましたが、今回は別のプロジェクトで定義されているため、これは想定していませんでした。 –

関連する問題