2011-03-19 2 views
0

현재 자바 스크립트/jQuery로 호출하는 페이지 메서드가 있으며 서버는 json 개체를 반환합니다. 나는 실제로 모든 페이지에서이 페이지 메서드를 사용하고 싶다는 것을 알고 있습니다. 물론 모든 페이지에 페이지 메서드를 붙여 넣을 수 있지만 더 나은 옵션을 찾고 있습니다.ASP.NET 웹 서비스 및 페이지 메서드

  1. 페이지 방법을 마스터 페이지에 넣기. 이 일을 쉽게 할 수 있습니까?

  2. 웹 서비스 만들기. 내 질문은 이것입니다 : 지금, 페이지는 세션 ID를 통해 메소드를 요청한 클라이언트를 알 수 있습니다. 웹 서비스는 누가 그것을 부르는지를 알고 있습니까? 성과면에서 비교 가능합니까?

어떤 제안이 있으며 무엇을주의해야하는지 알려주세요.

감사합니다.

+0

이유 번호 # 102 내가 웹폼을 증오하는 이유에 : 다음

 public partial class BasePage : System.Web.UI.Page { [System.Web.Services.WebMethod] public static string MyCallbackMethod(string someVar) { ... } } 

그리고베이스 페이지가 다른 페이지에 의해 사용되는 당신은 뭔가를 많은 농구를 통해 이동해야 간단하고 공유 된 서비스에 요청하는 간단한 좋아함. – tvanfosson

답변

1

모든 페이지에서 해당 기능을 사용하려면 모든 페이지 오른쪽에 필요한 공통 기능이 있어야합니다.

json 개체가 될 수있는 javascript/jquery에 대해 한 번만 여러 바인딩을 노출 할 수 있으며 다시 같은 html로 사용할 수 있습니다.

프로젝트에 서비스 참조 또는 웹 참조로 참조를 추가하십시오. 추가되면 모든 페이지에서 사용할 수있게되며 원하는 모든 페이지에서이 방법을 사용할 수 있습니다.

더 자세한 정보가 필요하면 알려주세요.

당신은 객체 지향 일을하고 다른 페이지의 모든 상속 기본 페이지를 만들 수 있습니다이

[WebMethod] 
    [ScriptMethod(ResponseFormat = ResponseFormat.Json)] 
    public List<Object> GetData(int pageSize) 
    { 

    } 

$.ajax({ 
    type: "POST", 
    url: "test.asmx/yourmethodname", 
    data: "{'somevalue':'14'}", 
    contentType: "application/json; charset=utf-8", 
    dataType: "json", 
    success: function(msg) { 
     // response...here 
    }, 
    error: function(msg) { 
// error here 
    } 
}); 
+0

동의 - 웹 서비스로 이동하지만 단일 서비스에 대해 별도의 웹 서비스 프로젝트를 만들 필요는 없습니다. @ frenchie의 기존 웹 프로젝트에 하나의 서비스를 항목으로 추가 할 수 있습니다. – Tahbaza

+0

웹 서비스가 더 효과적 일 것 같습니다. 웹 서비스가 XML 대신 json을 반환하게하려면 어떻게해야합니까? – frenchie

+0

@frenchie, 당신은 무엇을 사용하고 있습니다, 나는 당신이 .aspmx를 사용하고 있을지도 모를 webmethod를 생각합니다. json 형식의 문자열로 매우 쉽게 할 수 있습니다. 그렇지 않으면 .asmx가 json endpoint를 지원한다고 생각합니다. 나는 wcf를 사용하고 있으며 자동으로 json 끝점을 노출합니다. – kobe

1

같은 것을보십시오. 뭔가 같이 :

public partial class Default : BasePage 
     { 
       ...