从javascript调用全局类的c#函数

时间:2014-03-10 09:09:24

标签: c# javascript

我有一个返回一些字符串的全局函数。 我需要在其中一个页面中从JavaScript访问该函数,并将返回值设置为JavaScript变量。

实施例: -

var jsvariable = <%GlobalClass.MethodReturningString();%>;

怎么做?

4 个答案:

答案 0 :(得分:0)

你不能像这样调用C#函数。你需要创建一个Web服务或webmethod 为了调用这个功能。 请看这个链接它会对你有所帮助。 http://www.aspsnippets.com/Articles/Calling-ASPNet-WebMethod-using-jQuery-AJAX.aspx

答案 1 :(得分:0)

执行以下步骤:

  1. 右键单击您的网站或Web应用程序并添加WebHandler。 webhandler的扩展名为“.ashx”。假设您将处理程序命名为“Handler.ashx”
  2. 打开Handler.ashx文件,并在ProcessRequest方法中编写以下内容: context.Response.Headers.Clear(); context.Response.Write(GlobalClass.MethodReturningString();); context.Response.Flush();
  3. 在您的javascript中,使用jQuery执行ajax调用:

    $.ajax({ url:'someUrl/Handler.ashx', type:'GET', success : function(data){ var someJavascriptVariable = data; } });

  4. 注意:这是一个快速而肮脏的写入,所以我不保证代码肯定会起作用,但是你可以从这开始。

答案 2 :(得分:0)

可能我很厚你不能这样做,但你可以使用ajax

访问你的c#函数

例如

   $.post('url', {parameter : parameter }, function (result) {

         // here the result is your function return value or output

   },"json");

网址格式:'/ pageurl / methodname'

答案 3 :(得分:0)

首先,作为一个澄清,似乎你并没有尝试从Javascript实际调用C#方法,而是从页面内部的C#方法渲染返回,以便它可以用作Javascript变量客户端的价值。

为此,您需要更新语法,如:

var jsvariable = '<%= GlobalClass.MethodReturningString() %>';

请注意,如果您的类与代码隐藏文件中的继承页面不在同一名称空间中,则需要导入其命名空间,如下所示:

<%@ Import Namespace="GlobalClassNamaspace" %>

命名空间导入也可以全局完成(并且它将在所有站点的页面中自动提供),使用描述为here的web.config文件。

如果你真的需要从Javascript调用C#方法,如果你想从客户端代码中动态使用它的结果,则需要这样做,那么这可以通过Ajax完成。