내 생각에 ScriptService 물건은 asp.net의 숨겨진 보석입니다. 스크립트 서비스에 대한 호출은 데이터 + viewstate를 패스 백하지 않으며, 그들은 가늘고 빠른 JSON 페이로드입니다.
가장 중요한 부분은 ASP.NET3.5의 scriptmanager가 호출 할 JS 메서드를 생성하고 필요한 JS 클래스를 설정하는 것과 관련된 대부분의 작업을 수행 할 수 있다는 것입니다.
Person이 C# 클래스라고 가정하고 "Person"에 대한 세부 정보를 가져 오는 간단한 예제입니다. PersonService.asmx에서
:
namespace MyProj.Services {
[System.Web.Script.Services.ScriptService]
[System.Web.Script.Services.GenerateScriptType(typeof(Person))]
public class PersonService : System.Web.Services.WebService
{
[WebMethod, ScriptMethod(UseHttpGet = true, ResponseFormat = ResponseFormat.Json)]
public Person GetPersonDetails(int id)
{
/* return Logic here */
}
}
}
DetailsPage.aspx
<asp:ScriptManager ID="ScriptManager1" runat="server">
<Services>
<asp:ServiceReference Path="~/Services/PersonService.asmx" />
</Services>
</asp:ScriptManager>
에서이 같은 설정을 사용하여, 당신도 전화를 JQuery와의 도움을 필요로하지 않습니다 서비스 및 C# Person 클래스의 JS 버전을 가져 오면 .net이 모든 것을 수행합니다. 것 JS에서이 서비스를 사용하는 예는 :
MyProj.Services.PersonService.GetPersonDetails(id, _onDetailsCallbackSuccess, _requestFailed, null);
_onDetailsCallbackSuccess: function(result, userContext, methodName) {
//all persons properties are now intact and available
document.getElementById('txtFirstname').value = result.Firtname;
}
어쨌든, 그것은 ASP.NET 아약스 ScriptService 물건으로 보는 가치가 더 후가 될 것입니다. 이번에는 사용하지 않기로 결정하더라도 꽤 사악한 기능입니다.http://www.jankoatwarpspeed.com/post/2008/05/14/asp-net-ajax-basics-calling-scriptservices-using-javascript.aspx
ASP.NET AJAX 익스텐더 (Extender), 당신의 컨트롤에 Ajax를 통합하는 다음의 논리적 단계 : 링크
감사합니다. 귀하의 답변은 정말 도움이되었습니다. 그가 먼저 응답 한 이후 나는 다른 하나를 답으로 표시했으나 앞으로 유용 할 것이므로 귀하의 응답을 표결했습니다. – jakejgordon
@jake : 가장 유용한 답을 답으로 표시해야합니다. 우리는 빠른 타이피스트가 아니라 위대한 해답을 보답합니다. – Espo
첫 번째 링크 (www.jankoatwarpspeed.com)는 페이지를 찾을 수 없음을 반환합니다. (그것은 inbetween에서 제거되었을 수 있습니다 ... – Mochi