【问题标题】:How to call C# class method using Javascript?如何使用 Javascript 调用 C# 类方法?
【发布时间】:2015-09-02 07:17:58
【问题描述】:

我在 App_Code 文件夹下创建了 Class 我已经创建了方法。 我需要使用 Sample.aspx 文件中的 JavaScript 调用该类方法。

类:

namespace ContactBook.App_Code
{
    //The function need to call...
    public class ContactBook_functionalities
    {
        public static bool MyFunction(string email, string contact)
            {
                 //Code...
            }
    }
}

JavaScript:

<script type="text/javascript">
        function callMyFunc(email, contact)
        {
             //var x = MyFunction(string email, string contact);
        }
</script>

[WebMethod] 不适用于类函数。

【问题讨论】:

  • 嗨,请在下面查看我的答案。如果您认为答案有帮助,您可以点赞(向上箭头)。

标签: javascript asp.net c#-4.0


【解决方案1】:

我不认为你可以这样做,因为:

  • ASPX 是服务器端,而 JavaScript 是客户端
  • 编译来自 ASP 站点的一些组件

您可以做的是在调用该函数(或该数学的 Api)的服务器上公开一个路由(如果您使用 MVC 设计模式)。

【讨论】:

  • 没有使用任何 MVC 设计模式。
【解决方案2】:

您需要在 ASP.net 中公开 HTTP handler 或在 MVC 中公开 Controllers / Web API 以使您的 JavaScript 能够与服务器通信。在 ASP.net 应用程序之外无法通过 JavaScript 访问简单的类。

创建自己的控制器/HTTP 处理程序后,您需要向控制器发送 AJAX 请求,它应该如下所示:

 $.ajax({
   url: "sampleurlhere",
   type: "POST"//POST or GET,
   data: {
       id: "sample id as parameter"
   },
   success: function(e) {
    //this event fires up when response arrives.
   }
 })

【讨论】:

  • 因为我没有使用任何 MVC 设计模式,所以控制器不在我的项目中。
  • @karthikeyanmlp,您可以查看我提供的有关如何在 ASP.net 中使用 HTTP 处理程序的链接
  • 如何使用 JavaScript 调用带有参数的 Handler_function?我认为以下是调用 Handler "localhost/HttpHandler/test.sample" 的唯一方法
  • 如何使用 JavaScript 调用带有 FunctionName 的 Handler_function?我认为下面是调用处理程序“localhost/HttpHandler/test.sample”的唯一方法,而且我也使用了 CodeBehin 文件中的 Class_methods。 如果我写Handler,同样的操作,我需要写两次。对于类和处理程序。 这也是未来的问题,因为我需要更新那些不是单一的。 有没有其他方法可以直接使用class_methods???
  • @karthikeyanmlp,请检查我给你的代码。数据对象的每个属性都相当于处理程序方法上的一个参数
猜你喜欢
  • 2011-10-28
  • 1970-01-01
  • 2014-07-18
  • 1970-01-01
  • 2019-07-21
  • 2018-10-12
  • 2012-04-29
相关资源
最近更新 更多