【问题标题】:Call C# method from another class using JavaScript/jQuery使用 JavaScript/jQuery 从另一个类调用 C# 方法
【发布时间】:2014-04-25 18:26:33
【问题描述】:

我有一个 jQuery 方法,当点击时返回 div 的文本。此方法位于.js 文件中。我想使用另一个类中的方法,该方法使用单击的 div 中的文本作为参数。

JavaScript/jQuery:

$(document).on('click', '#clicked div', function () {
    var temp = $(this).html();
    temp = temp.replace('<span>', '').replace('</span>', '');

    // someMethod(temp);
});

Class.cs:

public string someMethod(string str){
    return str;
}

如何从 JavaScript 文件访问此方法?

【问题讨论】:

  • .cs 对我说 C#。如果是这种情况,它不会在浏览器中运行!
  • 正如@JustinHarvey 所说.cs = Codebehind,您唯一可以获得文本的就是进行Ajax 调用。
  • 您不能从 JavaScript 代码调用 C# 代码。它们在两个完全不同的机器上运行,在两个完全不同的技术堆栈中。您可以做的是从 JavaScript 向服务器端资源(页面?操作方法?处理程序?)进行 AJAX 调用,并且该服务器端资源可以调用 C# 方法。
  • 感谢您的帮助。我会尝试 AJAX 调用。
  • 你应该看看 MVC 或 WebAPI。

标签: c# javascript jquery inheritance methods


【解决方案1】:

将该类设为静态并添加该方法,即 someMethod 在那里,然后对该方法进行ajax调用

public static class Yourclass
{
  public static string someMethod(string str)
  {
    return str;
  }
}

【讨论】:

  • 没有提到 MVC 或任何其他允许他访问它的框架。以及将方法设为静态不会产生任何影响这一事实。
  • 它有效。只需在您的静态方法顶部添加标签[WebMethod],您就可以从javascript 调用它。问题是关于 C#、javascript 和 JQuery。
  • @RicardoAppleton C# 可以是任何东西。一个 .dll 库,控制台应用程序等。由于您不知道该方法是如何包含的,您怎么能 100% 肯定地说使用 [WebMethod] 装饰器会起作用?我还想说的是,将其设为静态不会有任何效果。
  • 你是对的。我假设他的 Class.cs 将是网页的 cs 代码。
猜你喜欢
  • 1970-01-01
  • 2020-10-20
  • 2014-01-31
  • 2017-10-17
  • 1970-01-01
  • 2023-04-09
  • 1970-01-01
  • 1970-01-01
  • 2013-02-17
相关资源
最近更新 更多