我正在使用ASP.Net Ajax的页面方法,我遇到的问题是枚举的定义没有被呈现。这就是我所拥有的:
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
}
然后我有一个简单的网络方法,例如:
[WebMethod]
public static Contact GetContact(Guid id)
{
return ....;
}
在客户端,我最终得到一个MyNamespace.Contact类;但是,我没有 MyNamespace.PhoneNumber或MyNameSpace.PhoneNumberType。我发现,如果我明确添加只返回这些类型的虚假webmethods,那么就会呈现客户端类型。有没有办法强制将枚举强制转换为假网页方法?
我想要枚举,因为我需要遍历该列表&lt;&gt;并基于PhoneNumberType做一些不同的事情。我宁愿不硬编码幻数或硬编码枚举。
答案 0 :(得分:0)
我需要将GenerateScriptType属性添加到方法签名中。
所以我的页面方法现在是
[WebMethod]
[GenerateScriptType(typeof(PhoneNumberType))]
[GenerateScriptType(typeof(PhoneNumber))]
public static Contact GetContact(Guid id)
{
}