2011-03-19 97 views
0

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

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

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

让我知道你有什么建议,我应该注意什么。

谢谢。

+0

原因号码#102:

 public partial class BasePage : System.Web.UI.Page { [System.Web.Services.WebMethod] public static string MyCallbackMethod(string someVar) { ... } } 

然后是的BasePage会被其他页面中使用你经历了这么多跳铁圈只是做一些事情简单地喜欢向简单的共享服务发出请求。 – tvanfosson 2011-03-19 21:34:25

回答

1

如果您想在每个页面上使用该功能,这意味着您需要在每个页面上都有一项常用功能。

在您的web服务中,您可以公开多个绑定,一次用于可以是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 
    } 
}); 
+0

同意 - 使用web服务,但不需要为单个服务创建单独的Web服务项目;一个服务可以作为一个项目添加到@ frenchie现有的web项目 – Tahbaza 2011-03-19 21:35:11

+0

好吧,看起来像一个Web服务可能会更好。如何让Web服务返回json而不是XML? – frenchie 2011-03-19 21:41:30

+0

@frenchie,你在用什么,我想如你所说的webmethod你可能会使用.aspmx正确..你可以很容易地做到这一点与JSON格式的字符串,否则我认为.asmx支持json端点。我正在使用wcf,它自动地暴露了json的终点。 – kobe 2011-03-19 21:42:54

1

你可以做面向对象的事情,并创建一个基本页面,所有其他网页的继承。喜欢的东西:在为什么我讨厌的WebForms

public partial class Default : BasePage 
     { 
       ...