2010-07-19 4 views
4

asp.net webmethod가 항상 'json'양식의 데이터를 반환하는 경우 일반적인 질문이 있습니다. 웹 메소드의 기본 반환 데이터 유형이 아닌 것은 무엇입니까?asp.net webmethod가 항상 jsonified 데이터를 반환합니까?

'json'이 아닌 'HTML'의 webmethod에서 데이터를 가져올 수있는 방법이 있는지 궁금합니다.

감사

답변

2

PageMethod는 ASP.NET AJAX 프레임 워크 (ScriptManager)의 일부입니다.

기본적으로 ASP.NET AJAX는 SOAP과 달리 JSON을 사용합니다.

이것은 주로 설계 상으로는 ASP.NET AJAX Javascript 라이브러리가 JSON 개체와 함께 작동하도록 최적화되어 있기 때문에 발생합니다.

웹 메소드에 [ResponseFormat] 속성을 지정하여이 기본값을 대체 할 수 있습니다. 이처럼

:

[WebMethod] 
[ScriptMethod(ResponseFormat = ResponseFormat.Xml)] 
public XmlElement GetFoo(string url) 
{ 

Here는 PageMethods 및 ASP.NET AJAX 기반 웹 서비스에 괜찮은 기사입니다.

+1

회신에 늦어서 죄송합니다.이 기사를 참조 해 주셔서 대단히 감사드립니다. 페이지의 방법에 따라 xml 또는 Json 응답을 보내고 다른 것은 제공하지 않습니다. 잘못된 경우 제발 수정하십시오. – kranthi

+0

당신이 맞습니다. 내부적으로는 JSON을 사용합니다. 왜냐하면 대부분 jquery/ajax에서 웹 서비스를 사용하기 때문입니다. 외부 API/웹 서비스를 만들 때 XML을 사용하는 유일한 방법은 JSON뿐입니다. – RPM1984

0

기본 웹 서비스해야 SOAP (XML 형식)에 대한 반환 유형은, WCF 것이 JSON으로 형식을 반환 변경할 수있는 REST 팩이

[http://msdn.microsoft.com/en-us/netframework/cc950529.aspx][1]

희망 이것은 도움이됩니다.

+0

감사합니다. 사실 저는 webservices.but을 사용하고 있지 않습니다. asp.net codebehind 페이지에 webmethod를 작성하고 있으며 json에서 응답을 볼 수 있습니다. 이유를 설명해 주시겠습니까? 'json'대신 'HTML'을 얻는 방법은 무엇입니까? – kranthi

+0

코드 샘플을 제공해 주시겠습니까? 당신은 또한 내가 가지고있는 다음과 같은 방법 [의 WebMethod] 공공 정적 문자열의 sayHello() { 반환 "안녕하세요"예를 들어 페이지 지시문 – Iain

+0

에에 콘텐츠 형식을 추가 할 수 있습니다; } 그리고이 메소드를 scriptmanager와 PageMethods.sayHello 조합을 사용하여 호출하고 방화 광구에서 { "d": "hello"}로 응답을 봅니다. 또한 페이지 지시문 ContentType을 'text/html' 여전히 동일한 json 응답을 얻었습니다. – kranthi

관련 문제