首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将数据从javascript传递到c#非静态函数

问如何将数据从javascript传递到c#非静态函数
EN

Stack Overflow用户
提问于 2022-08-02 05:08:24
回答 1查看 121关注 0票数 0

我有一个aspx页面,在脚本部分,我编写了一个Ajax函数将数据传递给aspx.cs页面。但问题是ajax适用于静态函数。但是我想将数据发送到aspx.cs页面中的非静态函数。是否有任何方法将数据从javascript函数传递到后面代码中的非静态函数?

javascript函数:

代码语言:javascript
复制
           function loadNewNode(val) {
            var parms = "{'employeeNumber': '" + val + "'}";



            $.ajax({
                type: "POST",
                async: true,
                url: "xxxxxxxx.aspx/LoadDownNode",
                data: parms,
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: function (msg) {


                },
                error: function (e) {
                    alert("Unexpected error has occured!");
                }
            });
        }

Aspx.cs(代码背后的函数):

代码语言:javascript
复制
    public  void LoadDownNode(string employeeNumber) //not working with ajax because this is non static
    {

        string procCorpLevel = "true";
    }
EN

回答 1

Stack Overflow用户

发布于 2022-08-02 20:39:47

但是,当您调用这些代码时,后面没有类的实例。它不存在于服务器上,甚至不存在于web服务器内存中。

服务器上的代码和网页?一旦它把页面分发给你和你的浏览器?页面后面的代码、内存、变量和hte类的存在现在已经消失并删除了。

网络服务器不仅仅是给你的!-你可以有很多用户。那个网络服务器坐在那里很简单。如果有人按下页面上的按钮,就会发生回发。您的网页旅行到一个web服务器坐在那里等待一个回发。

在回发时,你的整个网页现在都在服务器上。创建了页面类,后面的代码开始运行。您可以更新该页面类+控件。然后,页面返回到客户端,在服务器上,页面被移除、完成,甚至不再是eixst。web服务器现在正在等待任何用户-您,或其他30个用户中的一个回发页面。

那么,当代码后面的非静态类已经不存在时,如何调用它呢?

静态类可以很好地使用代码中的任何对象或类--但是您希望所有对象都必须先创建该类的实例,然后才能使用它,对吗?

在ajax调用中,您可以在后面的代码中调用该例程,但它没有整个网页,因此没有创建该类的内存实例。因此,您仅限于静态方法。

但是,如果您需要在ajax调用中使用一些控件值呢?然后在js代码中,获取/获取文本框或值,然后将值传递给静态方法。静态方法可以执行任何操作,并返回一些值或数据。您的js代码现在可以更新网页上的一些控件。

那么,你调用的静态方法?它当然可以使用您创建的任何类,但是它不会使用控件来创建当前的页面类,因为该页面还没有回发到服务器,并且还没有发生所谓的web页面的“往返”。

如果您的代码背后需要使用该页面上的其他控件?然后,您需要回发所有的页面数据,这样才能发挥作用。

因此,在编写代码时,请记住生命周期或所谓的往返。如果没有这个关于回发的基本步骤,那么您就无法掌握web软件如何工作的最基本的层次。

这也是为什么我们经常将web软件称为无状态的原因。网页位于用户桌面上。然后他们可能会浏览到谷歌,或者关闭笔记本电脑的盖子。服务器不关心,甚至不知道-而且服务器上的网页和类甚至不存在于内存中。

因此,这不像桌面,每个用户都有自己的计算机,一旦web服务器将网页发送到客户端,服务器端的网页就会消失,从内存中删除。网络服务器就坐在那里,等待你的50个用户中的任何一个回发一个完整的网页。因此,只有在网页在服务器上运行的很短时间内,页面类和代码以及变量才会存在。后面的代码运行,充分利用了页面类。但是就在web服务器把网页发送回客户端之后呢?web服务器转储出网页--现在就可以接受来自任何用户的任何回发网页--而不仅仅是您这个用户。

也许您最好问问您想要对ajax调用和方法做什么,但是这样的调用当然不关心或不了解当前的web页面类--因为它不存在,并且只有当您回发整个网页时才会存在,所以类实例可以在短时间内创建--页面在服务器上存在。一旦页面被呈现并发送到客户端,服务器端的网页甚至不再存在。web服务器无法为每个用户处理其他网页(及其类)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73202237

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档