如何从 vb.net 中的 aspx.vb 页面调用 webmethod
Posted
技术标签:
【中文标题】如何从 vb.net 中的 aspx.vb 页面调用 webmethod【英文标题】:how to call webmethod from aspx.vb page in vb.net 【发布时间】:2016-06-15 05:45:59 【问题描述】:我想做的是从 aspx.vb 调用 WebMethod,下面是我在 Default.aspx.vb 中的 WebMethod 语法
<System.Web.Services.WebMethod()> _
<ScriptMethod(UseHttpGet:=True, ResponseFormat:=ResponseFormat.Json)> _
Public Shared Function dat( _
ByVal Id As Integer) As List(Of items)
Dim eve As New List(Of items)()
eve = (From row In getItems(Id).Rows
Select New items With
.Name = row("Name").ToString(),
.Description = row("Description").ToString(),
.ItemPic_url = row("ItemPic_url").ToString()).ToList()
Return eve
End Function
下面是我调用 web 方法的 jquery 函数:
注意:我的 Jquery 函数放在我的母版页中,我从启动 Default.aspx 页面调用它。
function getItems()
$("#tbody").empty();
var id = $("select")[0].value;
$.ajax(
url: "Default.aspx/dat",
data: Id: id ,
contentType: "Application/json; charset=utf-8",
responseType: "json",
method: "POST",
success: function (response)
$("#tbody").empty();
var rows = response.d;
var count = response.d.length;
var table = document.getElementById("tbody");
var row;
var cell;
for (var i = 0; i < rows.length; i++)
if (i % 4 == 0)
row = table.insertRow();
cell = row.insertCell(); //simply insert the row
cell.innerhtml = "<td><ul><li style='text-align:center;'><img id='imgload' width='190px'; height='166px' src='../Images/CatalogImgs/" + rows[i].ItemPic_url + "' alt='No Image Found' /></li><li style='margin:4px 6px;font-weight: 600;font-family: Calibri;font-size: 16px;'>" + rows[i].Name + "</li><li style='margin:4px 6px;color: #808080;font-weight: 600;'><p>" + rows[i].Description + "</p></li></ul></td>";
if (document.getElementById("tbody").rows[0].cells.length > 0)
//alert(document.getElementById("tbody").rows[0].cells.length);
switch (rows.length)
case 1:
$("#tbody > tr > td").css('padding-left', '18%');
break;
case 2:
$("#tbody > tr > td").css('padding-left', '12%');
break;
case 3:
$("#tbody > tr > td").css('padding-left', '6%');
break;
default:
$("#tbody > tr > td").css('padding-left', '1%');
,
error: function (xhr)
alert(xhr.status);
,
Failure: function (response)
alert(response);
);
问题:我没有进入我的网络方法。通过尝试从浏览器调试。我收到了下面提到的错误:
未知的网络方法数据。 参数名称:methodName 在 System.Web.Script.Services.WebServiceData.GetMethodData(字符串方法名) 在 System.Web.Handlers.ScriptModule.OnPostAcquireRequestState(对象发送者,EventArgs eventArgs) 在 System.Web.HttpApplication.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() 在 System.Web.HttpApplication.ExecuteStep(IExecutionStep 步骤,Boolean& completedSynchronously)【问题讨论】:
请参阅this 线程。也许它可以帮助你。 【参考方案1】:我正在做的是从 aspx.vb 调用 WebMethod
。
下面是我在 Default.aspx.vb 中的WebMethod
语法:
<System.Web.Services.WebMethod()> _
<ScriptMethod(UseHttpGet:=True, ResponseFormat:=ResponseFormat.Json)> _
您还需要添加以下导入:
Imports System.Web.Services
Imports System.Web.Script.Services
【讨论】:
以上是关于如何从 vb.net 中的 aspx.vb 页面调用 webmethod的主要内容,如果未能解决你的问题,请参考以下文章