이 질문이 이미 게시되어 있고 제안 된 SO 링크를 확인했지만 질문에 정확하게 관련된 것으로 보이지 않는지 확실하지 않습니다. 따라서 누군가가 이것이 중복 가능성이 있다고 생각한다면 제안 된 답변의 링크를 게시하고이 게시물을 용서하십시오.동일한 UserControls Javascript에서 UserControl Server 함수를 호출 할 수 있습니까?
내 문제에 접근하는 방법은 여러 가지가있을 수 있지만 간결함을 위해 JavaScript 또는 JQuery 호출을 해당 서버 측 메서드로 사용하려는 사용자 정의 컨트롤이 있습니다. 자바 스크립트를 사용하여 클라이언트 측을 제어 I은 사용자의 ExecuteThis 메소드를 호출하고 싶은
public partial class UserControls_MyControl : UserControl
{
public string ExecuteThis(string someValue)
{
return someValue;
}
}
:
예를 들어, 내가 같은 내 사용자 제어를위한 일부 서버 측 코드를 가지고 있었다 말한다. 나는 그것이 다른 메카니즘들 가운데서 사용하는 부모 페이지로부터의 호출 이었다면 이것이 가능하다는 것을 안다; PageMethods. 그러나 클라이언트와 서버 코드가 둘 다 사용자 정의 컨트롤 내에있을 때 이것이 어떻게 성취 될 수 있습니다.
나는 WebService 프록시의 사용을 제안하는 몇 가지 게시물과 참조 기사를 훑어 보았고 AJAX를 사용하여 User Controls Client Script에서 WebService를 호출하는 것을 시도해 보았습니다.
function MakeWebServiceCall()
{
$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
url: "/WebServices/MyService.asmx/SomeMethod",
data: "{}",
dataType: "json",
success: function (msg) {
alert(msg.d);
},
error: function(error)
{
alert(error.responseText);
}
});
}
그러나 어떻게 WebService 콜을 사용자 컨트롤 메소드에 연결할 수 있습니까? 또는 심지어 가능합니까? 아니면 이것을하는 좀 더 우아한 방법이 있습니까?
감사 PLN, 즉 대답이었다! 당신이 해결책으로 제시 한 것이 무엇인지 알아내는 데 잠깐 시간이 걸렸지 만, 지금 당장 얻었습니다. Web Method가 작동하려면 "Static"으로 표시해야한다고 생각합니까? – Mark
실제로 정적 인 이래로 WebMethods는 페이지에 전혀 액세스 할 수 없으므로 실제로 작동한다는 것을 믿지 않습니다. 그러나 논리를 페이지로 이동하거나 웹 서비스 또는 웹 API를 만들 수는 있지만 실제로 클라이언트 스크립트에서 사용자 정의 컨트롤을 실제로 조작하려고한다고 가정합니다. – pln