【问题标题】:how to pass parameters to class method from javascript using asp.net script tags如何使用 asp.net 脚本标签从 javascript 将参数传递给类方法
【发布时间】:2014-01-21 15:32:24
【问题描述】:

我想从 javascript 中调用一个类的方法,

在javascript中我正在做这样的事情

<%=myMethod("abc")%>

但是值“abc”在例如变量中。

var myValue = "abc";

那么我该如何传递这个变量呢?

我试过了

<%= myMethod(myValue) %>

但它无法识别 myValue 变量

【问题讨论】:

  • 您正在尝试将 javascript 变量传递给服务器端函数?
  • 是的,我正在尝试将 javascript 变量传递给服务器端函数

标签: javascript asp.net tags


【解决方案1】:

在代码隐藏中定义一个返回变量值的函数,并呈现为:

<%= myMethod(MyValueGet()) %>

【讨论】:

  • 我没听懂。请你解释一下
  • 我认为变量在代码隐藏中(相同的符号)。以这种方式传递 javascript 变量是不可能的,因为函数背后的代码是在呈现页面之前执行的,因此尚未设置 javascript 变量。
  • 你能提出任何替代方案吗?
【解决方案2】:

Javascript 在用户计算机上执行(客户端代码)。 ASP.NET 在服务器上执行(服务器端代码)。

无法将 javascript 变量直接传递给 ASP.NET 函数。要将某些状态从客户端传递到服务器,您必须向服务器发出请求(通常是 GET 或 POST),包括 javascript 变量。

进一步阅读:http://en.wikipedia.org/wiki/Ajax_%28programming%29

【讨论】:

    【解决方案3】:

    要调用传递客户端变量的代码隐藏函数,您可以发送 javascript ajax 调用,并将服务器方法定义为 Web 服务方法。这会有所帮助:

    http://www.c-sharpcorner.com/UploadFile/rohatash/calling-server-side-function-from-javascript-in-Asp-Net/

    【讨论】:

      【解决方案4】:

      我认为您尝试调用的方法应该是公开的和静态的。最重要的是,它应该用 [WebMethod] 属性装饰

      在您的页面代码隐藏(.aspx.cs)中

      public class TestPage : Page
      {
         [System.Web.Services.WebMethod]
         [System.Web.Script.Services.ScriptMethod]
         public static string MyMethod(string para)
         {
            return "Yes this is working " + para;
         }
      }
      

      并在您的页面代码 (.aspx) 中

      添加脚本管理器(来自工具箱)

      <asp:ScriptManager ID="ScriptManager1" EnablePageMethods="true" runat="server" />
      

      并调用方法

       <script>
           function Call(myValue){
             PageMethods.MyMethod(myValue);
           }
       </script>
      

      【讨论】:

        猜你喜欢
        • 2017-09-25
        • 2021-05-26
        • 2019-06-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-09-29
        相关资源
        最近更新 更多