ASP.NET 페이지 메소드에 대한 객체 정의가 렌더링되지 않습니다

StackOverflow https://stackoverflow.com/questions/627014

  •  06-07-2019
  •  | 
  •  

문제

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가 없습니다. 이러한 유형을 반환하는 가짜 웹 메드를 명시 적으로 추가하면 클라이언트 측 유형이 렌더링됩니다. 그 열거가 가짜 웹 방법보다 다른 렌더링을 강요 할 수있는 방법이 있습니까?

나는 그 목록을 통해 반복해야하기 때문에 열거를 원하고 phoneNumberType를 기반으로 다른 일을합니다. 나는 오히려 하드 코드 마법 번호 나 열거적 탈피를 하드 코드하지 않습니다.

도움이 되었습니까?

해결책

메소드 서명에 generatescripttype 속성을 추가해야합니다.

그래서 내 페이지 방법이 지금입니다

[WebMethod]
[GenerateScriptType(typeof(PhoneNumberType))]
[GenerateScriptType(typeof(PhoneNumber))]
public static Contact GetContact(Guid id)
{
}
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top