2012-07-13 2 views
1

페이지에 표시 할 html을 반환하는 내 App_Code 폴더 안에 도우미 메서드가 있습니다. 어떻게 그 메소드를 호출하여 (매개 변수로 int를 전달하는) jQuery/AJAX 요청을 수행하고 HTML을 페이지에 표시 할 수 있도록 반환 할 수 있습니까?jQuery AJAX에서 WebMatrix Helper 함수를 호출하는 방법은 무엇입니까?

나는 어디에서나 찾고 있었고 어디서부터 시작해야할지 전혀 몰랐습니다. 나는 어떤 도움을 주셔서 감사합니다.

+0

당신은 단순히 말했기 때문에 그렇게 할 수 없습니다 : C# 코드에서 발생을 서버 측과 JavaScript는 클라이언트 측에서 발생합니다. 아니면 당신 질문이 아니 었나요? – Silvermind

+0

@ Silvermind 그건 내가 이전에 생각한거야. 그러나 값을 반환하는 aspx 페이지 안에있는 jQuery/AJAX에서 WebMethod를 호출하는 방법을 보여주는 (그리고 작동하는) 기사를 보았습니다. 그러나 제 상황은 약간 다릅니다. 필자의 경우 ASPX 페이지에있는 메서드를 호출하는 대신 App_Code/myHelper.cs 파일 안에있는 메서드를 호출해야합니다. – Arrow

+0

인용 : http://encosia.com/using-jquery-to-directly-call-aspnet-ajax-page-methods/ – Arrow

답변

2

도우미를 사용하여 HTML을 렌더링하고 AJAX 호출을 통해 값을 제공하는 다른 페이지를 추가하십시오. 당신의 호출 페이지에서 다음

@{ 
    var i = Request["id"].AsInt(); 
} 

@Helpers.MyMethod(i) 

이, JQuery와로드 기능을 사용 : 예를 들어, RenderHelper.cshtml라는 페이지가있을 수 있습니다

$('#elementToFill').load('RenderHelper/?id=' + some_int); 
+0

정교하게 주시겠습니까? 나는 다른 페이지를 추가해서 조금 혼란 스럽다. (미안) - 나는 생각한다. - 미안하다, 나는 정말로 혼란 스럽다. 그러나 나는 그것을 얻는다 고 확신한다. – Arrow

+0

이것이 작동하지 않습니다. 내가 볼 수있는 리소스/문서가 있습니까? – Arrow

+0

"작동하지 않는다"는 것은 무엇을 의미합니까? 내가 제공 한 코드는 단지 예시입니다. 있는 그대로 작동하는 것이 아닙니다. "myMethod"를 도우미 메서드의 이름으로 변경해야하며 "#elementToFill"을 HTML을 표시 할 요소의 ID로 변경해야하며 마지막으로 "some_int"를 다음과 같이 변경해야합니다. 도우미가 예상하는 정수 값을 나타냅니다. 내가 알지 못하는 것이 무엇인지 알지 못할 때 적절한 리소스를 가르키 기가 어렵습니다. –

1

웹 서비스를 사용할 수 있습니다.

웹 서비스 int 클래스 메서드를 호출하고 jQuery/Ajax를 사용하여 웹 서비스를 호출하십시오.

예 :

내가 공동을 테스트하지 않았다

$.ajax(
    { 
     Type: "POST", 
     contentType: "application/json; charset=utf-8", 
     url: "WebService.asmx/GetName", 
     data: '{Name: "' + name + '"}', 
     success: function (msg) { 
      alert(msg.d); //set msg to any div elemts InnerHTML like $("#yourDivElement").html(msg.d); 
     } 
    }); 

클래스 파일

Class MyClass 
{ 
public static string GetName(string Name) 
{ 
return "My name is "+Name; 
} 
} 

웹 서비스

[WebService(Namespace = "WebService")] 
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] 
    [System.ComponentModel.ToolboxItem(false)] 
    [System.Web.Script.Services.ScriptService] 
    public class YourNameIs : System.Web.Services.WebService 
    { 
     [WebMethod, ScriptMethod] 
     public string GetName(string Name) 
     { 
      return MyClass.GetName(Name); 
     } 

    } 

jQuery를 드 생각 해봐.

+0

고마워요 사용자, 많이 감사드립니다. 필자는 웹 서비스가 내가 가지고있는이 특정 웹 호스트에서 작동 할 수 없었지만, 여전히 좋은 일이므로 앞으로 다른 사이트에서 사용할 수 있습니다. – Arrow

관련 문제