【问题标题】:ASP.NET web service and page methodASP.NET web 服务和页面方法
【发布时间】:2017-02-23 16:18:46
【问题描述】:

目前,我有一个使用 javascript/jQuery 调用的页面方法,服务器返回一个 json 对象。我意识到我实际上希望在每个页面上都有这个页面方法。当然,我可以在每个页面上复制粘贴页面方法,但我正在寻找更好的选择。

  1. 将页面方法放在母版页中。这很容易做到吗?

  2. 创建 Web 服务。我的问题是:目前,页面知道哪个客户端通过 sessionID 请求该方法; Web 服务是否也知道谁在调用它?在性能方面,它们是否具有可比性?

让我知道您有任何建议以及我应该注意的事项。

谢谢。

【问题讨论】:

  • 为什么我讨厌 WebForms 中的原因编号 #102:您必须跳过这么多圈才能做一些简单的事情,比如向简单的共享服务发出请求。

标签: asp.net


【解决方案1】:

如果您希望每个页面都有该功能,这意味着您需要在每个页面上都有一个通用功能。

在您的网络服务中,您可以公开多个绑定,一次用于可以是 json 对象的 javascript/jquery,然后您也可以将其用于您的 html。

将引用添加为项目中的服务引用或 Web 引用。添加后,它将在每个页面上可用,您可以在所需的所有页面上使用该方法。

让我知道您需要更多详细信息。

试试这样的

[WebMethod]
    [ScriptMethod(ResponseFormat = ResponseFormat.Json)]
    public List<Object> GetData(int pageSize)
    {

    }

$.ajax({
    type: "POST",
    url: "test.asmx/yourmethodname",
    data: "{'somevalue':'14'}",
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    success: function(msg) {
      // response...here
    },
    error: function(msg) {
// error here
    }
});

【讨论】:

  • 同意 - 使用 web 服务,但不需要为单个服务创建单独的 web 服务项目;可以将单个服务作为项目添加到 @frenchie 的现有 Web 项目
  • 好的,看起来 Web 服务可能会更好。如何让 Web 服务返回 json 而不是 XML?
  • @frenchie,你在用什么,我想正如你所说的 webmethod,你可能正在使用 .aspmx 对.. 你可以很容易地将它作为 json 格式的字符串,否则我认为 .asmx 支持json 端点。我正在使用 wcf,它会自动暴露 json 端点。
  • 目前,我正在使用一个 aspx 文件,并在其中放置了一个 web 方法。网络服务安全吗?
  • @frenchie,你能把你的要求解释得更清楚吗,我可以指导你一些好的解决方案。
【解决方案2】:

您可以做面向对象的事情并创建一个基本页面,所有其他页面都继承自该页面。比如:

     public partial class BasePage : System.Web.UI.Page
        {

            [System.Web.Services.WebMethod]
            public static string MyCallbackMethod(string someVar)
            {
                ...
            }   
         }

然后 BasePage 将被其他页面使用:

public partial class Default : BasePage 
        {
                ...

【讨论】:

    猜你喜欢
    • 2010-12-04
    • 1970-01-01
    • 2018-03-25
    • 1970-01-01
    • 2019-01-30
    • 1970-01-01
    • 2018-06-23
    • 2011-08-19
    • 1970-01-01
    相关资源
    最近更新 更多