Asp.net ajax 未为ASP.Net页方法呈现对象定义

Asp.net ajax 未为ASP.Net页方法呈现对象定义,asp.net-ajax,pagemethods,Asp.net Ajax,Pagemethods,我正在使用ASP.NETAJAX的页面方法,我有一个问题,枚举的定义没有被呈现。以下是我所拥有的: public class Contact { public string FirstName{get;set;} public IList<PhoneNumber> PhoneNumbers{get;set;} } public class PhoneNumber { public string Number{get;set;} public PhoneN

我正在使用ASP.NETAJAX的页面方法,我有一个问题,枚举的定义没有被呈现。以下是我所拥有的:

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
}
在客户端,我得到了一个MyNamespace.Contact类;但是,我没有一个 MyNamespace.PhoneNumber或MyNamespace.PhoneNumberType。我发现,如果我显式地添加只返回这些类型的假webmethods,那么就会呈现客户端类型。有没有一种方法可以强制使用其他伪造的web方法呈现该枚举


我需要枚举,因为我需要遍历该列表,并根据PhoneNumberType执行一些不同的操作。我不希望硬编码幻数或硬编码枚举定义。

我需要向方法签名添加GenerateScriptType属性

所以我的页面方法现在是

[WebMethod]
[GenerateScriptType(typeof(PhoneNumberType))]
[GenerateScriptType(typeof(PhoneNumber))]
public static Contact GetContact(Guid id)
{
}
[WebMethod]
[GenerateScriptType(typeof(PhoneNumberType))]
[GenerateScriptType(typeof(PhoneNumber))]
public static Contact GetContact(Guid id)
{
}