2009-03-09 7 views
0

ASP.Net Ajaxのページメソッドを使用していますが、列挙の定義がレンダリングされていないという問題があります。ASP.Netページメソッドのオブジェクト定義がレンダリングされない

public class Contact 
{ 
    public string FirstName{get;set;} 
    public IList<PhoneNumber> PhoneNumbers{get;set;} 
} 

public class PhoneNumber 
{ 
    public string Number{get;set;} 
    public PhoneNumberType {get;set;} 
} 

public enum PhoneNumberType 
{ 
    Home, 
    Work, 
    Fax, 
    Cell 
} 

は、私は、その後のような単純なWebメソッドを持っています:ここで私が持っているものである私はMyNamespace.Contactクラスで終わるクライアント側で

[WebMethod] 
public static Contact GetContact(Guid id) 
{ 
    return ....; 
} 

。ただし、 MyNamespace.PhoneNumberまたはMyNameSpace.PhoneNumberTypeはありません。私は、明示的にそれらの型を返す偽Webメソッドを追加すると、クライアント側の型がレンダリングされることがわかりました。その列挙型を他の擬似Webメソッドに強制的にレンダリングする方法はありますか?

そのリスト<を繰り返し処理する必要があるため、PhoneNumberTypeに基づいて別の処理を行う必要があります。むしろ、マジックナンバーをハードコードしたり、enumの定義をハードコードしたりしたいと思います。

答えて

0

メソッドシグネチャにGenerateScriptType属性を追加する必要があります。

だから私のページの方法について

[WebMethod] 
[GenerateScriptType(typeof(PhoneNumberType))] 
[GenerateScriptType(typeof(PhoneNumber))] 
public static Contact GetContact(Guid id) 
{ 
} 
ある
関連する問題