2011-08-13 1 views
1

私はASP.NET WebFormsjQuery AJAXを使用したいと私は直接Webサービスメソッド呼び出したい:Webサービスメソッドにモデルバインディングがありますか?

$.ajaxWrapper('/services.asmx/createprofile', { 
firstName = firstName, 
lastName = lastName, 
city = city, 
state = state, 
address = address, 
postalCode = postalCode, 
tell = tell, 
cellPhone = cellPhone, 
isCompany = isCompany }, function(r){ 
    // success callback; return value is in r parameter. 
}); 

注:改行は、デモンストレーションのみを目的ですが。フィールドの数がこれよりさらに多くのであり、すべてのof'em必要とされているので、

しかし、私は、パラメータとして、すべてを取得するには、Webサービスメソッドを作成する必要はありません:

[WebMethod] 
public bool CreateProfile (string firstName, 
string lastName, 
string city, 
string state, 
string address, 
string postalCode, 
string tell, 
string cellPhone, 
bool isCompany) 
{ 

} 

ですフレームワークにトリックをさせるためのASP.NET MVCモデルバインディングのような方法がありますか?言い換えれば、私はこの方法で私のWebサービスのコードを書くことができます。

[WebMethod] 
public bool CreateProfile (UserProfile profile) 
{ 

} 

答えて

1

私はわからないが、私はあなただけ(確認して、サービスメソッドのクラスでは(それが公開する)のUserProfileクラスを定義することができると信じてgetterとsetterを使用し、MVCで行うのと同じようにデフォルトの空のコンストラクタを与える)ことができます。

[WebMethod] 
public bool CreateProfile (UserProfile profile) 
{ 
    .... 
} 

public class UserProfile 
{ 
    .... 
} 
+0

お返事ありがとうございます。しかし、私は自分で実験をすることができるので、ここで例を探すことはしません。むしろ、モデル結合をサポートしている/サポートしていない理由の説明が必要です。 :) –

+0

あなたの質問ではありませんでした。しかし、serivceメソッドはSOAP形式のXMLを受け取ってそれを逆シリアル化し、asp.netフレームワークはそれをモデルにバインドします。 – BobTurbo

関連する問題