使用JavaScript / jQuery在按钮单击上调用C#方法

时间:2018-07-19 21:29:11

标签: javascript c# jquery

我试图使用JavaScript / jQuery函数在单击按钮时调用C#函数。

我经历了类似的问题及其解决方案,但没有一个适合这种情况。我的C#函数不返回任何内容。它是一个从任务计划程序触发作业的功能。有没有其他方法可以编写JavaScript函数,而该函数不返回任何内容?

下面是代码。

HTML:

<button id="btnClick" runat="server" EnablePageMethods="true">Replay</button>

JavaScript:

$(document).ready(function() {
  $(".btnClick").on('click', function() {
    $.ajax({
      async: true,
      url: "Home/ABVReplay",
      cache: false,
    });
    console.log("Replayed!");
  });
});

C#:

[WebMethod]
public void ABVReplay()
{
    using (TaskService tasksrvc = new TaskService("<server.name>", "<username>", "<domain>", "<password>"))
    {
        Task task = tasksrvc.FindTask("<taskName>");
        task.Run();
    }

}

如果我仅在控制台应用程序中使用C#代码,则作业运行。因此,没有连接/登录问题。

控制台应用程序代码:

using System;
using Microsoft.Win32.TaskScheduler;

class Program
{
    static void Main(string[] args)
    {
        using (TaskService tasksrvc = new TaskService("<server.name>", "<username>", "<domain>", "<password>"))
        {
            Task task = tasksrvc.FindTask("<taskName>");
            task.Run();
        }
    }
}

2 个答案:

答案 0 :(得分:3)

您的jquery选择器需要更改

$("#btnClick")

代替

$(".btnClick")

并确保您的通话网址正确。

#选择html标签id

.选择html标签class

答案 1 :(得分:0)

.代表jquery class,而#代表id,您必须替换此代码,并且应该可以。

$(document).ready(function () {
  $("#btnClick").on('click', function () {

    $.ajax({
        async: true,
        url: "Home/ABVReplay",
        cache: false,
     });
    console.log("Replayed!");
  });
});