最近接触一个VB.Net的项目,在JS 通过后台方法获取数据库数据时 为了方便快捷,就直接将后台方法写在了对应页码的.VB文件里,此时使用 $.post 时,只能进到 后台的Page_Load中,不会进入到目标方法里。此文简小结了一下 JS 调用 WS, 一般处理程序 和 直接调用 后台方法的用法,现将可行的方法记录如下:
- 调用WS。
创建一个后缀名是.asmx的文件,把方法写到里面, ws默认返回值XML,下面的demo 返回值是json。
' To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line.
<System.Web.Script.Services.ScriptService()>
<System.Web.Services.WebService(Namespace:="http://tempuri.org/")>
<System.Web.Services.WebServiceBinding(ConformsTo:=WsiProfiles.BasicProfile1_1)>
<ToolboxItem(False)>
Public Class WebServiceTest
Inherits System.Web.Services.WebService
<WebMethod()>
<ScriptMethod(ResponseFormat:=ResponseFormat.Json)>
Public Function SayHelloWord(Name As String) As String
Dim MArray()() As String = New String(3)() {}
MArray(1) = New String() {"sss"}
MArray(2) = New String() {":"}
MArray(3) = New String() {"Hello,world"}
Dim js As JavaScriptSerializer = New JavaScriptSerializer()
Dim sJSON As String = js.Serialize(MArray)
Return "{name:""Hello world""}"
End Function
En