.NET AJAX调用ASMX或ASPX或ASHX?

前端之家收集整理的这篇文章主要介绍了.NET AJAX调用ASMX或ASPX或ASHX?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在客户端使用AJAX从javascript调用一些业务逻辑的最有效的方法是什么?看起来你可以直接从javascript调用一个[WebMethod]在aspx(在我的情况下,我使用JQuery帮助)或者你可以直接调用.asmx。哪个呼叫减少开销?什么是最佳实践?

此外,[ScriptService]属性在类上做什么?我从来没有使用过这个在我的.aspx [WebMethod]方法,一切似乎工作正常。

我希望这是一个纯客观的问题。提前致谢!

在我看来ScriptService的东西在asp.net是一个隐藏的宝石。对脚本服务的调用不会回传表单数据viewstate,他们是精益,快速的JSON有效载荷。

最好的部分,ASP.NET3.5的脚本管理器可以做你的大部分工作,为生成一个JS方法,你可以调用和设置任何所需的JS类。

一个用于获取“Person”的详细信息的简单示例,假设Person是C#类。

在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的帮助来调用服务,并获得一个JS版本的C#Person类,.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 Ajax ScriptService的东西。即使你决定不使用它这一次它是一个非常邪恶的功能

链接

>看起来像一个很好的使用脚本服务的基本示例:http://www.jankoatwarpspeed.com/post/2008/05/14/asp-net-ajax-basics-calling-scriptservices-using-javascript.aspx
> ASP.NET Ajax Extender,将Ajax集成到控件中的下一步逻辑步骤。 http://weblogs.asp.net/scottgu/archive/2007/08/19/using-asp-net-ajax-control-extenders-in-vs-2008.aspx

原文链接:https://www.f2er.com/ajax/160713.html

猜你在找的Ajax相关文章