同一项目中的Web服务和网站 - javascript

我正在阅读在VS 2010 vb.net上创建的网站项目,他们在同一项目中实现了webservice.asmx,该项目将在javascript方法中调用。换句话说:Web服务不是作为API实现的,它是webservice.asmx,我可以在其中添加方法来调用数据库,这些方法用于javascript函数中。我的问题是:

从javascript调用Web服务,而不是回发到服务器并从那里检索数据的重要性是什么?
那会议呢? Web服务是否可以查看用户的会话?我问这个问题是因为我可以查看一些填充为HttpContext.Current.Session("UserID") = userId的会话。
如果可以捕获和填充用户页面的会话,是否可以访问同一用户的ASP页面中的控件?又为什么呢?

我对此Web服务有些困惑,我知道Web服务在服务器上运行并在应用程序中用作API ...这是我第一次使用同一个项目中编写的Web服务和网站,谢谢您。

参考方案

1个

调用WebService比执行PostBack快得多,因此,如果您只想对网站进行部分更新,则WebService是一个不错的选择(如果您要从头开始创建项目,则可以使用Web API,而不是ASMX WebService)。当然,您必须将结果集成到客户端的Web页面中。如果要使用异步请求来导致UI更改,则还可以在ASPX页上使用UpdatePanel。

为了避免CORS问题,通常也将WebService与Web前端托管在同一应用程序中。

2

如果将WebMethod属性上的EnableSession设置为true,则WebService也可以访问用户的会话。有关某些陷阱,请参见this question。

3

由于对Web服务的请求是一个单独的请求,因此它无法直接访问服务器上页面的控件(以C#/ VB.NET代码读取),但是您可以使用JavaScript更改客户端上的HTML文档树。

如果需要在服务器上的页面和WebService之间共享代码,则应该在帮助程序/业务逻辑类中创建由页面和WebService调用的单独方法。

举个例子,如果页面和WebService都需要从数据库中获取数据,则可以将用于数据库访问的代码从ASPX页面移到一个单独的类中(出于许多其他原因,这是一个好主意),并且在ASPX页面和WebService中都使用该类。

javascript popupwindow之后的行如何工作? - javascript

好的,我有一个来自后面代码的方法,可以创建一个popupwindow。然后有一行代码要在那之后执行,我想知道那行代码何时执行,是在使用popupwindow之后执行还是在创建popupwindow之后执行?例如:void exPopupWindowMethod() { string scr = "window.open('exampleP…

如何使用JavaScript访问嵌入式ASP.NET GlobalResources? - javascript

我正在开发一个遗留的ASP.NET项目,该项目正试图缓慢地进行调整,但是如果没有像巧克力手指屋一样塌陷的情况,我将无法进行重大更改。我试图为此找到解决方案,但由于术语的特定混合(“ javascript”,“ embedded”和/或“ resource”只是为我提供了有关如何嵌入.js文件的信息,而失败了)。 。),这可能是一种怪异的处理方式。该项目将Ap…

ddl在服务器中未更新-asp.net - javascript

我在ASP.NET c#上工作。我有一个DropDownList。 (runat =“ server”)在$ {document).ready上,我更新了它的值:$(document).ready(function () { document.getElementById("ddl").value = "abc"; ……

获取JavaScript值到C#字符串 - javascript

                        是否可以在C#中执行类似的操作?该值为“ 10/05/2014”string jsValue = javascript("$('#EstimatedStartDate').val()"); 参考方案 您能否更详细地阐明您要做什么。看来您正在尝试从javascript(客户…

从ASP.NET 1.1转换为ASP.Net 3.5后,单选按钮停止工作 - javascript

[我在下面以FYI的形式发布我们的问题和解决方案。如果您有Microsoft或代表机构对此问题的正式声明,我会将其标记为答案。否则,我下面的帖子将作为答案]。问题:我们采用了ASP.Net 1.1程序,并将其转换为ASP.Net 3.5。该页面最初正确显示,默认情况下选中一个单选按钮,并显示一个项目列表(“列表A”)。当我们单击另一个单选按钮时,它将正确显示…