gpt4 book ai didi

vb.net - 使用 jquery 访问 webmethod

转载 作者:行者123 更新时间:2023-12-04 21:26:14 25 4
gpt4 key购买 nike

我目前正在使用 jquery ajax 来调用 pagemethod(效果很好);

$.ajax({
type: "POST",
url: "ArticleList.aspx/GetArticleTags",
data: "{'articleId' : " + articleId + "}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (msg) {
if (msg.hasOwnProperty("d")) { msg = msg.d; }
var tags = JSON.parse(msg);
//do something
}
});

页面方法;
  <WebMethod()>
Public Shared Function GetArticleTags(ByVal articleId As Integer) As String
Using myDb As New MyRepository
Dim js As New JavaScriptSerializer
Dim returnString = js.Serialize((From t In myDb.GetArticleTags(articleId) Select t.TagId, t.Tag).ToList)
Return returnString
End Using
End Function

我现在处于需要从多个页面访问我的 GetArticleTags 函数的位置。为了快速启动并运行我可以
  • 将该函数复制到我的新 aspx 页面,并以相同的方式调用它。
  • 继续指向原来的aspx页面。

  • 这两个都太垃圾了。

    所以剩下的唯一合理的方法是调用 wcf (webget) 方法。
    这将意味着我不必手动将对象序列化为 json。它会为我完成。

    我的解决方案中已经有一个 Restful 网络服务,但我对从我的网络应用程序调用它持谨慎态度。我宁愿所有代码都存在于我的 webapp 中,而不是依赖于将位于同一 iis 服务器上的不同应用程序池中的 web 服务。它可能需要冷启动等,我需要快速启动。

    我已经使用模板“支持 AJAX 的 WCF 服务”向我的 web 应用程序添加了一个 wcf 文件。但是通过这样做,我正在用 web.config 等中的端点混淆我的 web 应用程序(并且我目前收到 500 System.ServiceModel.ServiceActivationException 异常)

    所以,归结为我的问题......
    调用我的函数的最佳方式是什么? (我认为它必须是我 Restful 网络服务)
    还有其他选择我没有考虑吗?

    非常感谢。

    最佳答案

    您应该创建一个支持 AJAX 的 ASMX 服务或使用普通的 ASHX 处理程序。

    如果您制作 ASHX 处理程序,则需要自己处理解析和安全性;我推荐一个 ASMX 服务,它可能与你的页面方法非常相似。

    关于vb.net - 使用 jquery 访问 webmethod,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2810492/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com