【问题标题】:Object definitions not being rendered for ASP.Net Page Methods没有为 ASP.Net 页面方法呈现对象定义
【发布时间】:2009-03-09 16:36:47
【问题描述】:

我正在使用 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。我发现如果我显式添加只返回这些类型的虚假网络方法,那么客户端类型就会被呈现。有没有办法强制将该枚举呈现为假网络方法?

我想要枚举,因为我需要遍历该 List 并基于 PhoneNumberType 做一些不同的事情。我宁愿不硬编码幻数或硬编码枚举定义。

【问题讨论】:

    标签: asp.net-ajax pagemethods


    【解决方案1】:

    我需要在方法签名中添加 GenerateScriptType 属性。

    所以我的页面方法现在是

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

    【讨论】:

      猜你喜欢
      • 2021-03-29
      • 2011-03-21
      • 2021-11-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-09
      相关资源
      最近更新 更多